C чего начать оптимизацию блога? Сократите количество запросов к базе данных!

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

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

В погоне за универсальностью разработчики тем используют универсальные конструкции, которые подойдут к любому блогу — они заменяют абсолютные пути, указывающие на файлы или папки, на функции, извлекающие эти пути из базы данных. Да, это универсально — при любом раскладе будет указана правильная папка, в которой находится, например, файл functions.php, сколько бы раз вы сменили домен. Однако за универсальность нужно расплачиваться — каждая такая функция создает как минимум одно обращение к базе данных, из которой она выуживает необходимые данные. А если учесть, что страниц в блоге, на которых выполняются эти функции, может быть несколько тысяч, и некоторые из них просматриваются не по одному разу ежедневно, то из-за использования этих универсальных функций возникает заметная нагрузка.

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

Имя блога
<title></title>

Эта функция берет из базы данных название блога, которое вы ввели в настройках. Вы можете безболезненно избавиться от нее, заменив на название блога.

<title>Блог о WordPress</title>
Ссылка на сайт
</pre>
<p>Эта функция возвращает прямую ссылку на главную страницу сайта. Ее можно заменить на саму ссылку:</p>
<pre>https://n-wp.ru/

или даже на ее относительный вид, который автоматически трансформируется в текущий домен:

/
Папка, в которой находится style.css

Наверняка вы встречали подобную функцию:

</pre>
<p>Она возвращает из базы данных абсолютный путь к папке, в которой находится файл стилей style.css. Эту функцию, как и в предыдущем случае, можно заменить на абсолютный, а лучше — на относительный путь к этой папке:</p>
<pre>/wp-content/themes/mytheme/
Папка используемой темы
/include/metabox.php ?>

Если вы не собираетесь менять тему и настройки, с ней связанные, то можете вместо функции, извлекающей из базы данных абсолютный путь к папке с текущей темой использовать относительный путь к этой папке:

/wp-content/themes/mytheme/include/metabox.php

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

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

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. ct

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

    так можно было сократить четыре лишних обращений в более ранних версиях

    в последних версиях ВП все автолоад опции получаются из БД одним запросом

    Ответить
  2. В wordpress гораздо больше лишних тегов, которые можно заменить.
    здесь можно посмотреть большой перечень.

    Ответить
  3. Елена

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

    Ответить