SQLMon: мониторинг запросов MySQL

Наверное, каждый разработчик знает, что во многих случаях плохая производительность связана с ошибками при проектировании базы данных либо неоптимальными запросами к MySQL (например, в таблице нет индекса, который мог бы использоваться для выполнения запроса, либо запрос использует ORDER BY/GROUP BY, без которых можно обойтись).

WordPress может вывести только список всех выполненных запросов — разработчику придётся запускать каждый подозрительный запрос вручную и анализировать результат. Это очень муторно и непродуктивно. SQLMon пытается помочь разработчикам, анализируя все запросы перед их выполнением, сообщая обо всём, что требует внимания.

Каждый запрос, который передаётся WordPress, анализируется (используя EXPLAIN); результаты показываются в подвале темы или панели администрирования. Лог запросов виден только администраторам, что позволяет использовать плагин даже на живых сайтах.

Одна из особенностей SQLMon — возможность выполнения EXPLAIN не только на запросах SELECT, но и UPDATE/DELETE и INSERT/REPLACE INTOAS или CREATE TABLEAS.

Перед использованием плагина рекомендую к прочтению статью Optimizing Queries with EXPLAIN.

Активация плагина: для успешной активации каталог wp-content должен быть доступен на запись — в него помещается файл db.php, который занимается отловом и анализом запросов.

Деактивация/удаление: аналогично, чтобы плагин смог удалить файл db.php, каталог wp-content должен быть доступен на запись. Тем не менее, в плагин добавлены средства контроля, позволяющие сохранить работоспособность блога, если плагин был удалён, а wp-content/db.php — нет.

Внимание:

  • плагин не будет работать с PHP 4;
  • плагин конфликтует со всеми плагинами, устанавливающими свой собственный db.php (W3 Total Cache, DB Cache, DB Cache Reloaded).

Плагин пригодится разработчикам WordPress, разработчикам плагинов и тем, а также администраторам, знающим MySQL, пытающимся понять, почему блог так медленно работает.

Домашняя страница SQLMon на wordpress.org.

Добавить в закладки

Связанные записи

Автор: Vladimir; метки: MySQL, SQLMon, WordPress, плагин, производительность

RSS Комментарии к статье «SQLMon: мониторинг запросов MySQL» (6)  »

  1. Does this plugin actually make mysql recommendations and fix them? I have a mysql bottleneck issue and my server is quite slow right now. thanks

    • To some extent. It does not give you recommendations but it shows what can cause problems.

      For example, please take a look at the attached file: you will see these comments in red: “Using temporary; Using filesort”. Temporary tables and filesort are known to be performance killers (especially on large datasets). If you can get rid of them, you will get a faster query. The next (by importance) is the orange label — ”range”. It means that MySQL has to do several lookups in the index to get all necessary rows. range is OK unless you have a large “x IN (List)” condition or when more than 30% of the rows match the range condition (if you have a large dataset).

      To summarize: the plugin just simplifies the analysis of the queries but it is the user who has to make the final decision.

      PS — if you need help with the query optimization, feel free to ask :-)

      query.png

  2. [...] SQLMon: мониторинг запросов MySQL [...]

Оставить комментарий к записи «SQLMon: мониторинг запросов MySQL»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Изображения должны быть включены!

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя