MySQL туды её в качель!

22.03.2014 1 Автор Phantom

Что-то стал у меня хостинг тормозить, но как-то не придал особого значения. Потом хостинг стал вставать раком, а конкретнее падал мускул и пришлось разбираться. Речь далее пойдёт о NextGen Gallery и умном поиске в джумле.

Под катом кроме технических подробностей размышления о проф.навыках программеров в стиле 18+.

ОГРОМНЫЙ размер таблички wp_options

Таблица wp_options в вордпрессе служит для хранения всех настроек движка и обычно весит 100-500кб. При сочетании NextGEN Gallery 2.0.xx (от 40 до 59 включительно) и WordPress 3.8.x объём растёт до 100500mb. Мой виртуальный хостинг лёг окончательно и бесповоротно когда зашкалило за 800mb на одном сайте и за 1.1gb на другом.

WTF?!?! – примерно таково было моё восклицание в переводе с невнятного матерного мычания на в меру литературный английский.

Оказалось, что вся таблица забита записями (в поле option_name) вида “_transient_блаблабла” и “_display_gallery_блаблабла”. Это где-то 2/3 объёма, остальное забито похожими “блабла_timeout_блабла”, которые судя по увеличению частоты к концу базы возникают из-за тормозов и добавляют счастья виртуальным гигагерцам.

Лирическое отступление: wordpress писали конченые долбоёбы ибо этот мусор ни что иное как кеш. В таблице с настройками блога. Кеш. Пиздец.

Лирическое отступление намба ту: разработчики галереи о проблеме знают, но не исправляют уже версий эдак не меньше пяти. Пиздец.

Решения у этой проблемы два, неправильное и правильное:

  • Немного напрячь древесину головного мозга и написать sql/php скрипт для чистки этого говна, итог засунуть в cron с интервалом 15мин-1д. Работает, но до первой пиковой нагрузки. Можно раз в пять минут чистить, но тоже не айс, плюс иногда вываливает 500/503 ошибку если грузить сайт в процессе отработки скрипта.
  • Выкинуть НАХУЙ ЭТО ГОВНО и поставить NextCellent Gallery, которая является развитием некстген версии 1.9.13. Решение не без минусов – придётся в ручную пробежаться по старым статьям и заменить код которым вставляются галереи во второй ветке на старый вида [nggallery id=].

УМНЫЙ поиск в joomla

В процессе выяснения предыдущего пункта глянув лог ошибок мускула обнаружил матюки на табличку j25_finder_terms, полез чекнуть и… УДИВИЛСЯ обнаружив что весит она в несколько раз больше всех остальных вместе взятых! Поиск рассказал мне, что это компонент умного поиска в джумле. Тыкнувшись на сайте в поиск краем глаза (на планшете была запущена консолька, удобно блин!) засёк на выводе top’а скачёк нагрузки аж до 50%.

WTF?!?!?! – привычно раздался глас админский…

Надо отметить, что объём таблички приблизительно в 10 раз превышает объём таблички с материалами. Это при том что умный поиск у меня не зацепил jcomments и форум на kunena.

Решается просто: компоненты/умный поиск/очистить нафиг, потом в управление расширениями, там отрубаем всё что к нему относится.

Эпилог

Мораль сей басни такова: проверяйте что делают свежеустановленные дополнения и обновления СРАЗУ и ДЕТАЛЬНО, а потом ещё через пару дней, опять же детально, дабы потом не пробиваться на полувисящий сервак с трёхэтажными матюками.

Поделиться в: