
Приветствую!
Вот захотелось посмотреть sql-запросы, выполняемые при загрузке страниц WordPress. Узнать сколько их выполняется, какое время выполнения. Возможно, выявить какие-то слабые места или ошибки.
Нашел отличный отладочный плагин Query Monitor, который имеет даже более обширный функционал. Помимо информации по sql-запросам он вывод данные по хукам, шаблону, выявляет php-ошибки, ошибки в скриптах и стилях, даёт возможность отладить AJAX запросы и многое другое.
Вот сейчас буду разбираться с Query Monitor и излагать здесь полученные знания.
Плагин Query Monitor можно скачать здесь. Подходит для версий WordPress, начиная с 3.5
Плагин имеет более 6 000 активных установок и только положительный оценки (на момент написания статьи – 71 пятерка). Примечательно, что автор не принимает пожертвования, а просит только оставить отзыв, если плагин понравился. Живут же люди! =) Мы б уже и рекламы навешали и кнопок для пожертвования и т.д. =)
Вообщем, по всем данным видно, что серьезная и профессиональная работа.
Устанавливаем и активируем плагин.
Информация, выводимая Query Monitor, по умолчанию, показывается только администраторам одиночных сайтов и суперадминам мультисайтов WordPress.
После активации плагина в админке и на сайте вверху появляется меню:
У меня оно красного цвета, потому что на сайте выявлены какие-то ошибки.
Сначала по числам. которые мы видим:
1. Время загрузки страницы в секундах (6,11s)
2. Размер страницы в мегабайтах (36,82MB)
3. Время выполнения всех sql-запросов, выполненных при загрузке страницы, сек. (0,1230s)
4. Количество выполненных sql-запросов (40Q)
Наводим мышь на меню и смотрим пункты подменю
Вся информация, выдаваемая Query Monitor, выводится внизу после футера. Меню облегчает навигацию и направит вас в нужный раздел. Плюс, в меню вам показаны проблемные места. Вот, как в моем случае – какая-то ошибка в скриптах и стилях.
Уверен, что на сайте каждого, установившего себе Query Monitor будут выявлены какие-то ошибки, предупреждения или замечания.
Давайте посмотрим какая ошибка найдена.
Missing Dependencies my-script-handle
http://wordpress-life.ru/wp-content/plugins/x-scroll-to-top-responsive/js/my-script.js wp-color-picker (missing)
Вот, знакомый “товарищ”. В статье плагины прокрутки страницы вверх я рассмотрел пять плагинов и выбрал для своего блога как раз x-scroll to top, в котором сейчас и выявлена ошибка.
В принципе, я уже замечал одну проблему в этом плагине – стрелка на кнопке не всегда прорисовывалась (кнопка – это не файл с изображением). Поэтому откажусь от использования x-scroll to top. Нет плагина – нет проблемы.
После деактивации плагина красный цвет меню Query Monitor изменился на коричневый. Осталось 3 PHP Notices и 1 PHP Stricts. Эти предупреждения уже не сильно критичны, пока на них не буду обращать внимание.
Таким образом Query Monitor помогает выявлять ошибки. Каким образом их устранять – это уже надо самим думать, в каждом конкретном случае – индивидуальный подход.
Теперь давайте посмотрим sql-запросы, собственно, причина благодаря которой был найдет этот плагин.
Жмем в меню пункт Queries и нас перебрасывает в раздел со списком всех выполненных sql-запросов.
Кстати, при очередном обновлении страницы мне показало, что есть 3 медленных sql-запроса.
1. Запрос, который получает самые популярные (просматриваемые) записи.
2. Запрос, получающий топ комментаторов в текущем месяце.
3. Запрос, получающий топ комментаторов в прошлом месяце.
Да, запросы серьезные, два последних – с подзапросами. Вообщем, записываю себе в задачи – заняться их оптимизацией. Возможно, у вас тоже используются эти запросы. Потому что этот код известен в Интернете. Если вы еще не подписаны на Жизнь с WordPress, то не упускайте эту возможность. В новых статьях будет много интересного и полезного!
Если бы страниц не кэшировались, то вчера во время рекламной кампании ВКонтакте сайт точно бы лег отдохнуть. =)
Думаете у вас на сайте все хорошо? Рекомендую и вам установить плагин Query Monitor и проверить сайт. Наверняка будут обнаружены и ошибки и медленные SQL-запросы.
Обязательно напишите о выявленных проблемах. Мне это интересно. Возможно, смогу помочь вам разобраться с ними.
Успехов!
Я боюсь, что как увижу ошибки, испугаюсь, так как не буду знать, что с ними делать.
Ольга, трудности не должны пугать. Всегда можно найти решение или того, кто сможет помочь. Ошибки не так страшны пока сайт работает. Все-таки, главная ценность Query Monitor именно в выявлении медленных sql-запросов. Не зря ж он назван “Монитор запросов”. Кэширование-кэшированием, но от медленных sql-запросов нужно избавляться.
Еще хочу сообщить Вам, что на моем блоге действует конкурс “15 WMR за первый комментарий к статье”. Несмотря на то, что Ваш комментарий не такой объемный, как того требуют условия конкурса, но он все же первый к данной статье и в этот раз объявляю Вас победителем. Для получения денежного приза Вам нужно сделать репост статьи в любую из соцсетей и прислать мне номер Вашего WMR-кошелька.
Приветствую, Алексей! Только что установил query monitor. Впервые. Подскажите как УВИДЕТЬ медленные запросы?
Спасибо!
Поставил на свой блог. Проверил. У меня красным выделены styles.
Пишет:
Missing toc-screen
Плагин table of contents нужен для вывода содержимого. Но почему-то вызывает проблемы.
Алексей, подскажите, как решить вопрос?
Здравствуй, Алексей. Установил плагин. показывает такую информацию shotbi.com/lsra
Скриншот вставить нельзя, поставил ссылку на скрин.
Я так понимаю всё нормально? Посмотри, плиз. Сайт грузится долго, мне не нравится.