n-wp.ru — блог о WordPress

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

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

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

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

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

Имя блога

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

Ссылка на сайт

Эта функция возвращает прямую ссылку на главную страницу сайта. Ее можно заменить на саму ссылку:

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

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

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

Она возвращает из базы данных абсолютный путь к папке, в которой находится файл стилей style.css. Эту функцию, как и в предыдущем случае, можно заменить на абсолютный, а лучше — на относительный путь к этой папке:

Папка используемой темы

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

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

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

3 комментария

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

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

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

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

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