ДОСТИГНУТО:

01.11.2016-300 страниц в индексе Google;
19.01.2017-300 страниц в индексе Яндекса;
03.02.2017-40 ТИЦ;
05.02.2017- сайт принят в DMOZ каталог;

Анализ SQL запросов WordPress

.

sqlАнализ SQL запросов WordPress

Всем приветище...

Владельцы и администраторы блогов WordPress довольно часто сталкиваются с тем, что после установки новых плагинов или написании собственных снижается скорость работы всего сайта. Зачастую это связано с избыточным количеством посылаемых скриптами SQL-запросов в базу данных. Иногда перед некоторыми становится дилемма — какой из плагинов выбрать, если у нескольких из найденных схожий функционал.

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

WordPress предоставляет возможность записи SQL запросов для их последующего анализа и отладки — это именованная константа SAVEQUERIES, которую нужно объявить в файле настроек WPwp-settings.php вот таким образом:

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

Чтобы увидеть какие SQL-запросы и в каком порядке выполнялись, можно в файле footer.php вашей текущей темы разместить следующий код:

Этот код должен быть расположен да закрывающего тега </body>. Теперь, когда код добавлен, при каждом обновлении страниц сайта, в самой нижней его части будет выводиться информация об SQL запросах. Там же будет отображаться время, затраченное на выполнение каждого запроса, имена файлов и их функций, используемые для SQL запросов.

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

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

Чтобы решить эту проблему, предлагаю вашему вниманию адаптированный вариант скрипта для вывода на экран результатов работы сборщика SQL-запросов, который написал для себя и сам его использую:

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

Кстати, это скрипт Вы можете использовать даже на действующем сайте, ведь отчет об SQL-запросах будет виден только администратору, так как собственно весь скрипт заключен в условие:

Внимание!
Используйте приведенный в пример скрипт и константу SAVEQUERIES в файле конфигурации wp-settings.php только во время отладки вашего сайта и анализа SQL запросов! Не используйте их, когда сайт работает в обычном режиме и доступен посетителям.

Функция WordPress, которая производит запись всех запросов, добавит нагрузку на сервер SQL и будет прилично замедлять работу вашего сайта в целом. Поэтому по окончании анализа и отладки обязательно установите для константы SAVEQUERIES значение false, или даже закомментируйте ее, или вообще удалите из файла wp-settings.php. То же самое сделайте и со скриптом в файле footer.php, который выводил на экран статистику.

Ну все!

БЕРЕГИТЕ СЕБЯ!




лайк

Эти красотки хотят чтобы ты их жестко лайкнул и даже несколько раз твитнул!

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *