<rmcreative>

RSS

phpBB 3, тормоза и styles_template_data

25 февраля 2012

Какое-то время назад ни с того ни с сего начал тормозить форум yiiframework.ru. Перерыл весь сервер: обновил PHP, проверил APC, nginx подёргал, fpm… не помогало.

Сегодня сделал ещё один заход и нашёл причину посмотрев, наконец, в slow query log MySQL. В таблице styles_template_data, в которой хранятся отредактированные из админки темплейты, каким-то непостижимым образом оказалось 60K записей. Табличка эта дёргается при каждом реквесте. Ну а так как индекса на малое количество записей (их там максимум должно быть 30—40) логично не предусмотрено, выборка получается очень тяжёлая.

Погуглил. Нашёл, что на форумах phpbb народ с проблемой один или два раза встречался и… не рекомендуют ни под каким видом редактировать темплейты из админки. Вот вам пистолет, но не стреляйте, дуло запаяно и его разорвёт…

Комментарии RSS

  1. №5955
    Максим
    Максим 26.02.2012, 2:03:19

    Хм, решил чисткой мусора или как ?

  2. №5956
    Артём Курапов
    Артём Курапов 26.02.2012, 2:20:14

    Собственно поэтому я против хранения шаблонов в БД. Проблем не напасёшься, особенно когда надо переносить на другой проект. И вдвойне проблематично если есть синхронизация с файловой системой и что-нить не так с timestamp.

  3. №5957
    dclg
    dclg 26.02.2012, 11:49:06

    Кстати часто встречаюсь с подобными "пистолетами". Типа, мы очень старались сделать удобный инструмент, но у нас ничего не получилось - поэтому проще и надежней все равно делать "напрямую".

  4. №5958
    andy_s
    andy_s 26.02.2012, 12:24:54

    А шаблон лучше бы вернуть старый, там где-то был поиск и ссылка на непрочитанные темы :)

  5. №5959
    Sam
    Sam 26.02.2012, 20:14:25

    Верну обязательно.

  6. №5960
    Sam
    Sam 26.02.2012, 23:17:11

    Всё вернул.

  7. №5961
    SecondFrog
    SecondFrog 27.02.2012, 0:47:32

    Так как решить проблему ? :) Допустим сейчас форум читает шаблоны из БД и там много записей. Необходимо переключиться на хранение шаблонов на файловой системе. Куда копать ?

  8. №5964
    Sam
    Sam 28.02.2012, 18:48:38
    1. Скопировать дефолтный стиль в соседнюю директорию.
    2. Сделать в ней правки, которые делали в админке.
    3. Включить новую тему, отключить старую.
    4. Вычистить таблицу.
  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.