Сужу по своей БД. Наиболее всего засоряется таблица cms_banner_hits.
Я вообще не понимаю для чего нужна данная таблица.
Она содержит IP тех, кому показывались баннера и ничего больше.
Данные даже нигде не выводятся.
Смысл было создавать такую функцию?
Думаю компонент: Баннеры — не доработан.
Следующая таблица: cms_forum_votes.
В этой таблице содержаться данные какой пользователь за что проголосовал.
Проблема такая: опрос/голосование закончилось, зачем хранить эти данные?
Как раз ещё захотелось проверить, как работает голосование на форуме!
Меня это очень разочаровала… Как я и думал, вывод количества голосов берётся с помощью подсчёта проголосовавших пользователей. Естественно, при большом количестве пользователей будет сильно нагружаться БД.
Решение данной проблемы просты: создать дополнительную таблицу, допустим cms_forums_polls_all.
Данная таблица должна содержать id голосования и количество проголосовавших за ответы, то есть id — 1 / b1 — 15 / b2 — 30 / b3 — 50
Это к примеру.
Работать это должно всё тоже по крону. Есть таблица проголосовавших, крон из этой таблице переносит голоса в ту таблицу, которую я привёл.
Вывод проголосовавших происходит из той таблице, которую я привёл.
Так же надо ещё создать одну задачу крон, после окончания времени голосования, очищать пользователей, которые проголосовали за оконченный опрос.
Это два примера оптимизации, который я заметил на глаз в спешке.
Думаю, имеются и ещё другие.
Если ваш сайт посещают по несколько тысяч пользователей в день, то понятное дело, что это всё будет прилично нагружать ваш сервер.
Надеюсь разработчики учтут эти ошибки и попытаются это исправить.
Так же если я дойду да этого уровня, я сам их исправлю, но думаю это будет не скоро.
Спасибо за внимание :)