Как посмотреть SQL запросы к базе данных в WordPress
Когда вы открываете в браузере сайт на WordPress, в фоновом режиме происходит много интересных вещей. В это время платформа отправляет множество запросов в базу данных, чтобы получить конкретные объем информации.
Если вы разработчик, и вы хотите знать все о запросах к базе данных, система WordPress не предоставит вам простой способ для этого. К счастью, в репозитории WordPress для этого есть подходящие плагины. И один из таких плагинов мы сегодня и рассмотрим (Query Monitor). С помощью этого инструмента вы можете отслеживать все SQL запросы к вашей базе данных, что поможет вам отследить то, какие ресурсы использует ваш сайт.
В сегодняшней статье мы поговорим о том, что такое SQL запросы к базе данных в WordPress и то, как их можно отследить. Для этого мы будем использовать плагин Query Monitor.
Что такое SQL запросы к базе данных в WordPress
Проще говоря, SQL запросы (query) – это обращение к базе данных для получения нужной информации. Когда система WordPress (или любой из ваших плагинов или тем) запрашивает информацию из вашей базы данных, они делают это в форме SQL запроса.
Когда кто-то загружает ваш сайт, в фоновом режиме запускается несколько запросов. Чтобы мониторить эти запросы, вы можете использовать такие плагины как Query Monitor.
Мониторинг запросов к базе данных может позволить вам:
- Увидеть, какие плагины или темы оказывают большее влияние на производительность сайта. Каждый запрос занимает время, и чем больше запросов выполняет конкретный инструмент, тем больше он будет влиять на производительность вашего сайта.
- Следить за тем, какие ресурсы вы используете. Инструменты мониторинга позволяют увидеть, сколько памяти сайт использует и сколько контента успешно закэшировано.
- Улучшить диагностику. Если вы знаете, как отслеживать запросы к базе данных, вы можете более эффективно решать многие проблемы. Например, если плагин работает неправильно, это может быть связано с тем, что запрос не запускается должным образом.
Мониторинг запросов к базе данных в основном делается для повышения производительности сайта. Выясняя, какие плагины или темы используют больше всего ресурсов, вы можете предпринять шаги для их оптимизации. Например, вы можете заменить ресурсоемкие инструменты на более оптимизированные альтернативы.
Плагин для мониторинга запросов к базе (Query Monitor)
Плагин Query Monitor – это сложный инструмент, который может сделать гораздо больше, чем просто помочь вам отслеживать запросы. Он также позволяет отслеживать AJAX вызовы, запросы REST API и даже перенаправления (редиректы).
Плагин позволяет вам точно определить, какие компоненты какой запрос делают, сколько времени занимает обработка и многое другое. Он также сразу же уведомит вас о медленных SQL запросах, дублирующих запросах или любых ошибках, с которыми он столкнется. Это может быть полезно как для устранения неполадок, так и для целей разработки.
Все это делает Query Monitor невероятно полезным плагином. Единственная проблема заключается в том, что в плагине может быть трудно разобраться, если у вас нет опыта в разработке WordPress. В следующем разделе мы поговорим подробнее о том, как анализировать логи Query Monitor, чтобы у вас это не вызывало трудностей.
Особенности плагина:
- Отслеживайте запросы к базе данных, AJAX вызовы, запросы REST API и перенаправления.
- Определите, какие компоненты WordPress какой SQL запрос делают к базе данных.
- Проверьте, сколько времени занимает обработка каждого запроса, и какую информацию он обрабатывает.
- Получайте уведомления о медленных запросах, повторяющихся запросах и других типах ошибок.
- Стоимость плагина: бесплатно
Как мониторить запросы к базе данных в WordPress
Первым шагом процесса является установка плагина Query Monitor. Как только плагин станет активным, в самом верхнем разделе панели администратора вы увидите новый блок:
В этом разделе вы найдете информацию по времени генерации страницы, пиковому использованию памяти, времени SQL запросов к базе данных и общему количеству запросов. Если вы нажмете на раздел, появится новое меню, включающее множество опций. Выбор любого из них приведет вас к обзору этой опции.
Отчет разбит на отдельные разделы, к которым вы можете перейти, используя меню в панели администратора.
Здесь есть раздел «Дублированные запросы», в котором указаны ошибочные (дублирующие) запросы к базе данных. Рекомендуем проверять этот раздел, если один из ваших плагинов не работает должным образом.
В разделе «SQL запросы по компонентам» вы можете проверить, сколько запросов выполняет каждый из ваших плагинов и тем. Помимо количества запросов, которые выполняет каждый компонент, наиболее важной метрикой здесь является время. Чем выше значение в столбце Время, тем больше плагин или тема может повлиять на производительность вашего сайта.
В любом случае, если ваш сайт сталкивается с проблемами производительности, этот плагин предоставит вам быстрый способ определить, является ли какой-либо из компонентов WordPress виновником этого. Имейте в виду, для низкой производительности сайта может быть много причин, иногда плагины не обязательно являются виновниками.
Краткий итог
Каждый сайт на WordPress имеет свою собственную базу данных, с которой он связан. Это означает, что система должна обрабатывать запросы к этой базе данных. Чем сложнее ваш сайт, тем больше запросов он будет обрабатывать. Отслеживать эти запросы – это отличный способ устранения проблем и выяснения того, что плагины и темы сайта делают в фоновом режиме.
В большинстве случаев вам нужно следить за дублирующимися запросами, чтобы избежать проблем с совместимостью.
Отслеживая, как работают различные области вашего сайта, вы можете быстро решать проблемы и оптимизировать аспекты, которые истощают ресурсы вашего сервера.
Теги: WordPress
- 2033
- Опубликовано
- Wordpress — как сделать
- прокомментируйте статью
- расскажите друзьям
ТОP SQL запросов для WordPress
Совершенно случайно в интернете наткнулся на плагин WordPress SQL .
Это очень удобно и серьёзно облегчает жизнь, но я не остановился на этом и решил составить ТОP SQL запросов, которые непременно вам пригодятся.
Содержание
1. Восстановить пароль
Сейчас расскажу, что делать , если вы забыли пароль от админки. Лёгким SQL запросом ваш забытый пароль превращается в 11111.
[php]UPDATE wp_users SET user_pass = MD5(‘11111’) WHERE ID=1;[/php]
Пароль в принципе можно сменить не только себе, но и любому другому пользователя зная его ID. Точно также мы можем вместо ID использовать Login в составлении нашего запроса:
[php]UPDATE wp_users SET user_pass = MD5(‘12345’) WHERE user_login = ‘LOGIN’;[/php]
2. Изменить логин
В WordPress как многие знают НЕЛЬЗЯ сменить логин администратора. Это небезопасно, поскольку зная имя пользователя «admin» хакерам нужно будет только подобрать пароль. Для этого я предлагаю вашему внимаю следующий запрос, с помощью которого нам всё таки удастся изменить логи админа:
[php]UPDATE wp_users SET user_login = ‘VASYA’ WHERE user_login = ‘admin’;[/php]
таким образом мы сменили привычный нам «admin» на VASYA.
3. Удалить спам
Многие блогеры сталкиваются с той же проблемой с которой столкнулся и я. Большое количество спам-комментариев, которое вручную очень затрудительно всё время очищать. Для этого как раз подойдёт небольшой запрос, который удалит все комментарии помеченные в блоге как «спам»:
[php]DELETE FROM wp_comments WHERE comment_approved = 0[/php]
4. БД из комментаторов блога
Для того чтобы быстро создать базу для рассылки можно собрать её из комментаторов вашего блога. Правда это не совсем легально, без разрешения людей добавлять их в базу рассылки, но всё же. Базу можно собрать следующим образом:
[php]SELECT DISTINCT comment_author_email FROM wp_comments;[/php]
После данного запроса мы получим список всех email адресов наших комментаторов. Пользуйтесь данным списком очень осторожно!!!
5. Избежание спама
Часто на многих продвинутых сайтах рекомендуют закрывать коментарии к устаревшим записям, чтобы не накапливать большое количество спама. С помощью этого запроса, вы можете легко это сделать.
[php]UPDATE wp_posts SET comment_status = ‘closed’ WHERE post_date < ‘2014-05-01’ AND post_status = ‘publish’;[/php]
Комментария будут закрыты ко всем постам , которые были сделаны ранее первого мая.
6. Удаляем с помощью маски спам комментарии
Многие сталкивались с засоряющим и откровенно портящим репутацию вашего блога комментаторами, которые используют в своей речи бранные слова или скидывают ссылки на сайты ненадлежащего содержания.
Комментарии спамеров можно удалить используя определённое ключевое слово -маску.
[php]DELETE FROM wp_comments WHERE comment_author_url LIKE «%SEX%» ;[/php]
Используя данный запрос будут удалены все комментарии содержащие слово SEX и те у которых в url указано данное слово.
Здесь я привёл основные SQL -запросы, которые смогут улучшить вашу жизнь. И облегчить ведение вашего блога.
Создать таблицу на основе запроса MySQL, сгенерировав запрос к базе данных WordPress
Создать таблицу на основе запроса MySQL, сгенерировав запрос к базе данных WordPress youtube.com/embed/tMbRUJgYOl4?feature=oembed» frameborder=»0″ allowfullscreen=»»>WordPress и его плагины хранят данные в специальной базе данных MySQL, обычно называемой «WPDB». Знакомая пользователям структура основана на различных типах записей, настраиваемых (мета) полях записей и таксономиях; все они хранятся в наборе таблиц MySQL. Однако выполнение запросов к этим элементам может стать головной болью для тех, кто не знаком с относительными структурами баз данных и созданием SQL-запросов.
wpDataTables имеет встроенный конструктор запросов WPDB, чтобы помочь этим пользователям. Он имеет графический пользовательский интерфейс, который позволяет пользователю выбирать типы сообщений, настраиваемые/мета-поля и таксономии, а также генерирует запрос и предварительный просмотр. Вы можете изменить запрос по мере необходимости и создать wpDataTable на основе измененного запроса.
Давайте сначала рассмотрим живой пример, а затем пройдемся по всем элементам конструктора запросов WPDB.
Наш пример работает на WP, и мы хотели бы получить данные документации в wpDataTable.
Обратите внимание: этот инструмент не является универсальным генератором запросов. Он просто создает предложение запроса. Мы постоянно работаем над его улучшением, но SQL настолько сложный и гибкий язык, что полная автоматизация построения запросов практически невозможна. Следовательно, чем сложнее запрос, тем выше вероятность того, что он не вернет именно то, что вам нужно. Таким образом, вам часто придется играть с результирующим запросом.
Сначала заходим в админку WordPress, открываем wpDataTables -> Создать таблицу , выберите четвертый вариант: « Создать запрос к базе данных WordPress » и нажмите « Далее ».
Документация хранится на страницах WordPress, поэтому мы выбираем тип записи « page » в первом поле выбора, « page.ID », « page.post_title », « page. title_with_link_to_post», «page .post_author» . В демонстрационных целях мы добавили одно условие: «
Теперь мы проверим несколько элементов генератора запросов WPDB:
1. Все типы постов . Здесь вы можете выбрать один или несколько типов записей для своей таблицы. Этот список генерируется WordPress, и он «уникален» для каждой установки WordPress, поскольку разные темы, плагины или самописный код регистрируют разные типы записей. Вы можете выбрать один или несколько типов сообщений. Вы также можете выбрать опцию «все», если хотите получить все сообщения, которые не зависят от типа.
2. Выбранные типы сообщений. В этом поле показаны типы записей, которые вы хотите использовать в запросе. Поле пусто, когда вы впервые открываете страницу. Вы можете добавить типы сообщений из
3. Все свойства публикации. Это поле выбора изначально пусто. Он заполняется, когда вы выбираете один или несколько типов сообщений. В этом поле выбора вы увидите полный список параметров для каждого типа сообщения в форме «post_type_name.paramter_name» (разделенные точкой). Параметры для каждого типа сообщений включают «значения по умолчанию» (название, автор и т. д.), а также полный список зарегистрированных мета-ключей для типов сообщений и таксономий.
4. Выбранные свойства записи. Это поле пусто при первом открытии страницы. В этом поле будут показаны свойства публикации, которые вы хотите использовать в своем запросе. Вы можете добавить столбцы из поля Все свойства записи , выбрав их и нажав кнопку или перетащив их.
5. Конфигуратор правил отношения типа записи. Этот блок появляется, если вы выбираете более одного типа сообщений. Это поможет вам определить, как типы сообщений связаны с запросом, т.
Первый вариант — « Определить отношения (правила соединения) между типами записей ». Если вы выберете этот вариант, вам нужно будет предоставить логику отношений (см. пункт 6), чтобы для вас был сгенерирован блок «INNER JOIN» или «LEFT JOIN». Это можно использовать, если вы хотите вернуть, например, публикацию с ее дочерними элементами.
Второй вариант: « Не определять отношения между типами записей — выполнить полное внешнее соединение ». В этом случае все строки будут считаться равными и будут выведены в одну и ту же таблицу без какой-либо дополнительной логики.
6. Блок формирования правил отношений. В этом блоке вы можете определить отношения между различными свойствами типа поста, необходимые для их объединения; например « post.post_parent = page.ID ». Мастер генерирует столько блоков, сколько выбрано типов сообщений (например, 2 блока для 2 типов сообщений), но обычно вам нужно определить на один блок меньше, чем сгенерировано (например, только 1 из 2).
Первый раскрывающийся список каждого блока представляет поля данного типа сообщения, Второй раскрывающийся список показывает поля всех других типов сообщений, а флажок после раскрывающихся списков позволяет определить, следует ли использовать «внутреннее соединение» (установлено) или «левое соединение» (не отмечено). Внутреннее объединение означает, что будут возвращены только те строки, которые соответствуют заданному полю в обеих таблицах. Левое соединение означает, что будут возвращены все строки, даже если совпадений нет. Подробнее о присоединении можно прочитать здесь.
7. Блок дополнительных условий. Этот блок позволяет определить дополнительные условия: например, если вам нужны только строки, в которых определенное поле равно, больше или меньше некоторого значения.
Вы можете добавить столько условий, сколько вам нужно, с помощью кнопки . В первом раскрывающемся списке вы можете выбрать поле для определения условия, а во втором раскрывающемся списке вы можете выбрать оператор сравнения. Это может быть одно из следующих значений:
- =, <, <=, >=, > – равно, меньше, меньше или равно, больше или равно, больше
- <> – не равно
- LIKE — сравнение для «нечеткого» сравнения со строками. Например, если вам нужно вернуть все строки, в которых «post.post_title» начинается с «abc», вы должны определить его так, как показано на снимке экрана справа.
Знак «%» здесь обозначает шаблон, что означает, что он будет соответствовать любым символам (и любому количеству символов). Если вам нужно сопоставить один символ, вы можете использовать знак «_».
- %LIKE% — это «Нечеткое» сравнение с предопределенным замаскированным вводом; он будет соответствовать любой строке, содержащей определенную подстроку.
- IN — позволяет сопоставлять набор значений, например, «post.ID IN 1,2,3,4,5,6»
Вы всегда можете удалить блоки условий с помощью кнопки .
8. Блок правил группировки. Этот блок позволяет добавить группировку по определенному полю. Это может понадобиться, когда, например, вы хотите отобразить пост со всеми его тегами. Без группировки пост будет отображаться столько раз, сколько у него тегов (например, повторяться 5 раз, если назначено 5 тегов). Но если вы сгруппируете пост по названию или идентификатору поста, пост будет отображаться только один раз, а теги будут разделены запятыми.
Блок правил группировки можно добавить с помощью кнопки, он имеет только одно раскрывающееся меню со всеми полями, выбранными выше, и его можно удалить с помощью кнопки .
Следующая страница — это страница запроса и предварительного просмотра результатов. В нем всего несколько элементов:
1. Редактор запросов. Здесь вы видите запрос, созданный для вас wpDataTables. Если вас это не полностью устраивает, вы можете отредактировать его здесь.
2. Кнопка обновления. Если вы редактируете запрос, нажмите эту кнопку, чтобы отправить его на сервер и получить результаты в таблице предварительного просмотра.
3. Предварительный просмотр результатов. Здесь вы можете увидеть первые несколько строк, которые сервер MySQL возвращает с помощью предоставленного запроса. Если вы видите «Нет данных», это означает, что сервер MySQL ничего не вернул либо из-за ошибки в запросе, либо из-за того, что он просто возвращает пустой набор данных, хотя синтаксис правильный.
Если вы удовлетворены результатами, просто нажмите « Создать таблицу », чтобы инициализировать новый wpDataTable и изменить его настройки. Например, вы можете указать более подходящие имена столбцов, настроить скорость отклика или использовать другие параметры.
Если у вас много страниц, вы можете включить обработку таблицы на стороне сервера, чтобы она загружалась быстрее и быстрее работала на внешнем интерфейсе.
Согласие на управление
Как найти медленные SQL-запросы в блоге WordPress — Envano
Многие вещи могут замедлить работу вашего веб-сайта WordPress, включая большие изображения или видеофайлы, сценарии, анимацию, нагрузку на сервер и запросы к базе данных. Хорошей новостью является то, что эти вещи легко диагностировать и исправить. Однако запросы к базе данных могут быть более сложными. Если вы сталкиваетесь с медленными SQL-запросами в своем блоге WordPress, Envano предлагает быстрое решение.
Для быстрого запуска перейдите к Query Monitor ниже .
Что такое запросы?
Большинство современных веб-сайтов используют набор приложений, включая операционную систему веб-сервера, веб-сервер, базу данных и систему управления контентом. Прежде чем веб-сервер сможет отправить вашему браузеру веб-страницу, ему иногда необходимо ее собрать. Часто это означает запрос к базе данных определенного контента. Или, говоря ботанским языком, запускает запрос.
Исключите очевидное
Чтобы изолировать проблему медленных SQL-запросов, вы должны иметь возможность повторить проблему — когда и где она возникает? Медленно работают только определенные страницы? Только когда вы вошли в бэкэнд? Только в определенное время дня? Используете ли вы CDN или брандмауэры веб-приложений, такие как Cloudflare или Securi? Все это может быть важным ключом к сужению масштаба проблемы. Определите страницу (или страницу), которая лучше всего иллюстрирует проблему.
Начните с инструментов Dev, чтобы исключить распространенных виновников. Откройте сетевую панель, обновитесь и посмотрите на скорость загрузки страницы. Вы можете использовать вид водопада, чтобы увидеть, когда что-то загружается и сколько времени это занимает. Ищите большие активы или медленные скрипты. Посмотрите на вкладку консоли и убедитесь, что JavaScript не выдает ошибок и не зацикливается. Кроме того, вы можете использовать Query Monitor (см. ниже), чтобы исключить ошибки PHP или медленные ответы API.
Envano.com — сортируйте по размеру, чтобы найти файлы, которые загружаются дольше всего.После того, как вы исключили очевидное, пришло время рассмотреть вопросы.
Это запрос?
Запросы, исходящие от основных функций WordPress, обычно оптимизированы и не вызывают проблем. Вероятными виновниками будут устаревший код, сторонние плагины или пользовательский код. Рекомендуется обновить WordPress, плагины и тему, если это возможно. По крайней мере, вы должны запускать критические обновления для устранения проблем безопасности.
К этому моменту у вас может возникнуть подозрение, в чем заключается проблема. Это может происходить только на страницах, использующих определенный плагин или часть пользовательского кода. Временное отключение плагина или кода подтвердит ваши подозрения.
Хорошо, давайте посмотрим на запросы!
Query Monitor для медленных SQL-запросов
Query Monitor — отличный инструмент для наблюдения за тем, что происходит внутри. Это как Dev Tools на стероидах. Он показывает вам запросы, которые выполняются на текущей странице, а также ошибки PHP, медленные ответы API и много другой полезной информации.
Начните с панели ошибок PHP, чтобы исключить проблемы с PHP. Существуют ли неопределенные переменные? Вы двоеточие где-то забыли? Столбец местоположения покажет вам файл и строку, которые необходимо исправить.
Затем щелкните вкладку Запросы и просмотрите фактические запросы. Вы можете сортировать по времени и фильтровать по компоненту или плагину (вызывающему абоненту). Найдите запрос, который выполняется медленно или вызывает проблемы. Это должно помочь вам сузить область поиска до конкретного запроса, вызывающего проблемы.
Монитор запросов — сортировка по времени для поиска медленных запросов.Проблемы с запросами, скорее всего, возникнут при использовании сторонних подключаемых модулей или пользовательских компонентов. Если это основной компонент WordPress, ваши варианты невелики. Вы можете либо вернуться к более старой версии, в которой нет проблем, либо взломать файлы ядра (НЕ рекомендуется). Хорошей новостью является то, что в том маловероятном случае, если это файл ядра, он, вероятно, будет исправлен в будущем обновлении. Вы даже можете стать героем и отправить отчет об ошибке, чтобы помочь сообществу улучшить WordPress!
А теперь самое интересное
Как только вы узнаете, какой запрос замедляет работу, вы сможете отлаживать и оптимизировать его, используя стандартные методы SQL. Запрашивает ли он основную таблицу базы данных WordPress или пользовательскую таблицу, добавленную плагином? Вы перебираете десятки тысяч строк данных? Как насчет множественных объединений? Правильно ли вы используете индексы? Вы можете использовать различные инструменты, такие как phpMyAdmin, MySQLWorkbench, Querious или Sequel Pro, для просмотра структуры таблицы и выполнения тестовых запросов.
Иногда вы можете обнаружить, что запросы выполняются медленно из-за данных, к которым им необходимо получить доступ. Вы можете попробовать увеличить время выполнения на своем веб-сервере, что уменьшит количество ошибок на 500. Однако это не ускорит работу вашего сайта и может негативно повлиять на доступ других пользователей к вашему сайту. Лучшим решением может быть предварительная обработка ваших данных и обслуживание кэшированного контента. Ваш код может нуждаться в значительных изменениях. Если вы используете сторонний плагин, это может быть тревожным сигналом, что вам следует найти другой плагин.
Медленные SQL-запросы: Заключительные мысли
Понимание и оптимизация SQL-запросов могут быть сложными и утомительными. К счастью, WordPress, как правило, хорошо оптимизирован и стабилен, и у вас редко будут проблемы с основными файлами. Большинство проблем, с которыми вы столкнетесь, будут связаны со сторонними плагинами или вашим собственным кодом. Теперь у вас есть несколько инструментов и советов, которые помогут вам сузить круг и определить конкретные проблемы с вашими запросами. Но если вы все еще боретесь, заполните нашу контактную форму и давайте пообщаемся!
Ресурсы
- Монитор запросов
- SQLWorkbench
- Оптимизация MySQL
- Оптимизация производительности запросов O’Reilly
Автор Джо Шоки, инженер-программист
Джо одинаково комфортно работает как с технологиями, так и с людьми. Он больше, чем обычный компьютерный гений. Как инженер-программист, Джо чувствует себя как дома и пишет код на JavaScript, PHP, HTML или CSS.