Создаём варезник на DLE (Часть #3) — внутренняя оптимизация движка, снижаем кол-во запросов к БД

Все способы оптимизации перечисленные ниже в первую очередь нужны для сайтов с посещаемостью от 4-5к/сутки. Для только что созданных сайтов это практически не нужно, т.к сам скрипт уже имеет хорошие настройки.

1279172201_98143-1-4

Вы имеете сайт с посещаемостью 5к в сутки и хотите купить сумку, ой не то, и вы замечаете, что ваш сайт стал медленнее загружаться и увеличилась нагрузка на сервер с БД. Нам нужно это исправить и уменьшить нагрузку. Но для этого придётся пожертвовать некоторыми возможностями. Нужно ли это или не нет — решать вам. А я просто опишу все приёмы, которые знаю.

Как же снизить количество запросов к БД ?

1. Включить кеширование сайта:

Первым делом убедитесь, что папка /engine/cache/ доступна для записи (CHMOD 777).

Кеширование можно включить в «Настройке параметров скрипта» => «Оптимизация запросов к базе данных» => строка «Включить кеширование на сайте«. При включении кеширования вы потеряете счётчик просмотров новостей, который будет продолжать считаться, но обновляться только после обновления кеша.

Кеш создается для каждой группы посетителей отдельно и обновляется только при обновлении информации в базе данных (например добавление новости или коммента). Кеш не имеет срока давности и будет показываться до тех пор, пока не изменится база данных. При включении кеширования, будут кешироваться новости первых четырех страниц на главной и любого раздела.

2. Вывод самых рейтинговых статей на сайте:

При отключении этого блока вы сможете сэкономить один запрос к базе данных, но имейте ввиду что этот блок кешируется и поэтому данный блок не всегда обращается к базе данных, поэтому много от его отключения вы не выиграете, однако один запрос — это ведь тоже неплохо 😉

3. Счетчик просмотров новостей

Отключение данной возможности серьезный шаг на пути оптимизации нагрузки. Связано это с тем что функция обновления UPDATE базы данных, достаточно медленная функция, и во время обновления таблица новостей в базе данных будет заблокирована для чтения, пока не выполнится обновление. И все запросы к базе данных будут стоять в очереди на выполнение. Поэтому если у вас большая база данных с новостями, то мы настоятельно рекомендуем подумать, а нужен ли вам этот счетчик, и что он вам дает. Этим вы выиграете большое количество запросов к БД,

4. Календарь:

Он тоже кешируется , но всё таки позволяет снизить кол-во на один запрос, и то не иногда. Его можно вообще отключить. Однако в плане СЕО оптимизации это очень нужная вещь, т.к календарь создаёт ссылки на новости за определённые дни и месяца, получается внутренняя перелинковка сайта.

5. Вывод архивов новостей:

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

6. Рейтинг статей:

Самая ненужная функция, т.к голосовать за новости всё равно врядли кто нибудь будет 🙂 Этим снизим нагрузку ещё на один запрос. Эту функция лучше вообще отключить и удалить тег из шаблонов.

7. Пара слов насчёт голосований на сайте:

И хотя в админке написано, что при отключении этого блока вы экономите до 3 запросов, то смею вас заверить что в последних версиях скрипта, опрос имеет серьезную оптимизацию, и не создает вообще запросов к базе данных, все имеющиеся опросы сайта кешируются во время первого старта сайта и кеш не сбрасывается пока не будут внесены изменения в сам опрос, поэтому отключение этого блока не даст вам прироста в производительности. Так что можете смело пользоваться этой возможностью.

Это всё, что я знаю в плане оптимизации запросов к базе данных. Если знаете ещё, то не держите в себе и поделитесь с остальными написав комментарий bully-4-3. Следющая статья будет посвящена СЕО (seo) оптимизации движка и его шаблонов. Не пропустите!