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

. Следющая статья будет посвящена СЕО (seo) оптимизации движка и его шаблонов. Не пропустите!
Читать предыдущую статью Создаём варезник на DLE (Часть #2) - наполняем сайт контентом