Перейти к контенту
  • 0

Косяк IPB 2.3 - forum_cache


2rough4u

Вопрос

Очень долго воевал со своим форумом сегодня из-за того, что он сильно вешал пустой сервак. Запросы к БД иногда занимали 1-2 сек, долго не мог понять почему, пока не включил дебаг с отображением всех запросов. Включил и охренел. На каждой странице форум отправлял БД запрос на обновление кеша форумов forum_cache в таблицу ibf_cache_store. Скопировал ради интереса весь запрос в блокнот и сохранил как файл - получилось около 200кб! Тут у меня волосы встали дыбом :o. Открыл ipsclass.php, начал выяснять, почему такая свистопляска происходит. Трейсил, трейсил, в итоге пришел к тому, что в нормальных условиях запрос на обновление этого кеша должен отправляться либо в случаях обновления форумов, либо если при инициализации init_load_cache() по каким-то причинам не загрузила forum_cache. И действительно - все остальные кеши загружала, а этот - нет. Начал выяснять, почему не загружает. Потратил на это 2 часа. В итоге всё оказалось до боли глупо и просто - при обновлении этого кеша в БД данные заносятся в виде сериализованого массива, но так как структура форума у меня большая, то строка с сериализованым массивом вышла аж на 180кб и не влезала она элементарно в поле cs_value типа MEDIUMTEXT, вследствие чего часть строки херилась и собрать эту строку обратно в массив движок форума уже не мог, по-этому и не загружал forum_cache. Решение было очевидно - проапгрейдил поле cs_value в таблице ibf_cache_store до LONGTEXT и всё заработало. Теперь время выполнения запросов к БД занимает не более 0.2 - 0.3 секунды.

 

Вот так вот, господа. И ведь в другой раз не обратишь внимания... а тут такие страсти.

Изменено пользователем 2rough4u
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Потратил на это 2 часа.
Косяк IPB 2.3 - forum_cache

Мне кажется, вы понимаете, что я сейчас подумал ;-)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А можно подробнее про это, Archar? :)

 

Уж раз дошли руки до оптимизации кода и запросов, хотелось бы побольше узнать о уже изобретённых моделях велосипедов.

 

P.S. Кстати, раз уж тема о неоптимальностях, вот что ещё навскидку нашёл:

 

  • Мод eRate из topics.php и forums.php (action_public) фигачит штучными запросами по каждому посту/топику. Кол-во запросов доходило до 100шт на страницу. Пришлось оптимизировать код.
  • Мод nvAwards так же из topics.php(action_public) фигачит штучными запросами по каждому посту.

 

С удовольствием бы пообрывал ручки авторам. Но всё же эти моды я бы отнёс к весьма полезным, так как благодаря им удалось довести 2.3 до "а-ля вебдваноль" :)

 

post-64897-005591400 1282997207_thumb.png

 

P.S. Конечно, стоило бы просто перейти на 3.х, но напичканость кода и шаблонов различными примочками делает это уже практически невозможным :(

Изменено пользователем 2rough4u
Ссылка на комментарий
Поделиться на других сайтах

  • 0
С удовольствием бы пообрывал ручки авторам. Но всё же эти моды я бы отнёс к весьма полезным, так как благодаря им удалось довести 2.3 до "а-ля вебдваноль"

 

"Времена ламеров!" (Морис Мосс)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
"Сам дурак"? Ну уж извольте, на размер структуры форумов никто ограничения не оглашал...

Странно, почему вы тогда не пишите, что размер поста ограничен и названия темы. Это тоже особе нигде не афишируется ;-)

 

А с модами есть такая фигня, нужно переписывать. Особо трудного там ничего нет, по принципу сначала все посты пропустить через стандартный парсер, а потом уже делать запросы с выборкой по всем id и ещё раз парсинг. Так сделано с аттачами, к примеру.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Странно, почему вы тогда не пишите, что размер поста ограничен и названия темы.

В том-то и суть, что об этих ограничениях форум хотя бы предупреждает :) А о размере структуры - нет.

 

Короче, косяк есть ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
надоели каверкающие мой ник, надоело их отправлять в википедию, читать русское толкование моего русского ника, взятого из толкового словаря Ожегова
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.