Я был о Joomla! лучшего мнения. Вроде, крутая система, все дела. Но, как только количество статей переваливает штук этак за 15 тысяч, то начинаются совершенно дикие тормоза. С выплёскиванием на экран кусков sql-кода совершенно безумной длины. Насколько я понял, теряется связь с MySQL. То ли из-за сумашедших по сложности запросов, то ли по истечению времени.
На экране top можно увидеть, что mysql потребляет процессор, аки ненормальный. А базы-то все у меня вся в память помещаются, хоть и больше 1 Гига. Если на хостинге, где памяти мало, то тормозить, наверное, начнёт раньше, тысяч после пяти статей. Короче, лечится удалением статей. И всё начинает оживать.
Сделаем себе “зарубку” на память.
Дополнение16.06.2015 – с форума по joomla 3 – Ускорить загрузку сайта
очень похоже на выборку материалов для главной.
Вот тут в принципе все объясняется, а именно что на тысячах материалов тормоза есть, и что спасет лишь кеширование плагином.
Кеширование запросов мускулом тут не спасет, так как часть касаемая даты ‘2014-09-01 08:39:40’ постоянно меняется, то есть запрос фактически кешируется на секунду.
Лучше переписать запрос, чтобы было округление до ‘2014-09-01 00:00:00’ – тогда запрос будет дергаться из кеша весь день, но невозможно будет указать точное время снятия матеарила с публикации.
В этом случае (query cache) после кеширования его мускулом он будет отрабатывать моментально, если не изменятся данные ни в одной из перечисленных таблиц (а именно пользователи, категории, материалы, материалы для главной, рейтинг) и запрос не выпадет из кеша.
Или урезать “фишки” Joomla с главной, например вообще не проверять снят ли материал с публикации по дате, забить на рейтинг – это ускорит работу запроса и без query cache.