Все способы оптимизации перечисленные ниже в первую очередь нужны для сайтов с посещаемостью от 4-5к/сутки. Для только что созданных сайтов это практически не нужно, т.к сам скрипт уже имеет хорошие настройки.
Вы имеете сайт с посещаемостью 5к в сутки и хотите купить сумку, ой не то, и вы замечаете, что ваш сайт стал медленнее загружаться и увеличилась нагрузка на сервер с БД. Нам нужно это исправить и уменьшить нагрузку. Но для этого придётся пожертвовать некоторыми возможностями. Нужно ли это или не нет — решать вам. А я просто опишу все приёмы, которые знаю.
Как же снизить количество запросов к БД ?
1. Включить кеширование сайта:
Первым делом убедитесь, что папка /engine/cache/ доступна для записи (CHMOD 777).
Кеширование можно включить в «Настройке параметров скрипта» => «Оптимизация запросов к базе данных» => строка «Включить кеширование на сайте«. При включении кеширования вы потеряете счётчик просмотров новостей, который будет продолжать считаться, но обновляться только после обновления кеша.
Кеш создается для каждой группы посетителей отдельно и обновляется только при обновлении информации в базе данных (например добавление новости или коммента). Кеш не имеет срока давности и будет показываться до тех пор, пока не изменится база данных. При включении кеширования, будут кешироваться новости первых четырех страниц на главной и любого раздела.
2. Вывод самых рейтинговых статей на сайте:
При отключении этого блока вы сможете сэкономить один запрос к базе данных, но имейте ввиду что этот блок кешируется и поэтому данный блок не всегда обращается к базе данных, поэтому много от его отключения вы не выиграете, однако один запрос — это ведь тоже неплохо 😉
3. Счетчик просмотров новостей
Отключение данной возможности серьезный шаг на пути оптимизации нагрузки. Связано это с тем что функция обновления UPDATE базы данных, достаточно медленная функция, и во время обновления таблица новостей в базе данных будет заблокирована для чтения, пока не выполнится обновление. И все запросы к базе данных будут стоять в очереди на выполнение. Поэтому если у вас большая база данных с новостями, то мы настоятельно рекомендуем подумать, а нужен ли вам этот счетчик, и что он вам дает. Этим вы выиграете большое количество запросов к БД,
4. Календарь:
Он тоже кешируется , но всё таки позволяет снизить кол-во на один запрос, и то не иногда. Его можно вообще отключить. Однако в плане СЕО оптимизации это очень нужная вещь, т.к календарь создаёт ссылки на новости за определённые дни и месяца, получается внутренняя перелинковка сайта.
5. Вывод архивов новостей:
Запрос при большом количестве новостей может быть достаточном тяжелым, но он кешируется, поэтому нагрузка снизится но не очень сильно
6. Рейтинг статей:
Самая ненужная функция, т.к голосовать за новости всё равно врядли кто нибудь будет 🙂 Этим снизим нагрузку ещё на один запрос. Эту функция лучше вообще отключить и удалить тег из шаблонов.
7. Пара слов насчёт голосований на сайте:
И хотя в админке написано, что при отключении этого блока вы экономите до 3 запросов, то смею вас заверить что в последних версиях скрипта, опрос имеет серьезную оптимизацию, и не создает вообще запросов к базе данных, все имеющиеся опросы сайта кешируются во время первого старта сайта и кеш не сбрасывается пока не будут внесены изменения в сам опрос, поэтому отключение этого блока не даст вам прироста в производительности. Так что можете смело пользоваться этой возможностью.
Это всё, что я знаю в плане оптимизации запросов к базе данных. Если знаете ещё, то не держите в себе и поделитесь с остальными написав комментарий . Следющая статья будет посвящена СЕО (seo) оптимизации движка и его шаблонов. Не пропустите!