MySQL Profiler: простой и удобный инструмент профилирования запросов

Прислано: Химический Али

ср, 23/09/2009 - 21:53

Хабрачувак agorlov сообщает:

Сегодня был неожиданно удивлен, какие удобные штуки таит в себе MySQL. Хочу представить вашему вниманию фичу MySQL — профайлинг. Появилась она начиная с версии 5.0.37.
Всего парой запросов можно узнать, какими запросами формируется страница (для веб-девелоперов) и почему она тормозит. И раньше подобный функционал был доступен, но пользоваться журналом запросов не в пример сложнее.

Итак, как пользоваться:

mysql> set profiling=1;
mysql> select count(*) from comment;
mysql> select count(*) from message;
mysql> show profiles;
 
+----------+------------+------------------------------+
| Query_ID | Duration   | Query                        |
+----------+------------+------------------------------+
|        1 | 0.00012700 | select count(*) from comment |
|        2 | 0.00014200 | select count(*) from message |
+----------+------------+------------------------------+
2 rows in set (0.00 sec)

Дальше — больше

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано b-man в пт, 25/09/2009 - 11:06.

Эх, если б профайлер как в SQL Server....


Опубликовано vikeng в пт, 25/09/2009 - 13:47.

Интересная вещь. Вот только как её приспособить к Друпалу? Т.е. где нужно прописать set profiling=1;, чтобы после щелчка по ссылке и загрузке страницы, ввести там же show profiles; и получить результат?
P.S. Кстати похожий функционал реализован в модуле devel.


Опубликовано axel в пт, 25/09/2009 - 14:37.

b-man написал(а):

Эх, если б профайлер как в SQL Server....

C MS SQL тесно не работал. Просто любопытно, какой функционал есть в их профайлере, чего нельзя получить анализом логов mysql?


Опубликовано vgoodvin в сб, 26/09/2009 - 05:56.

"vikeng" написал(а):

Интересная вещь. Вот только как её приспособить к Друпалу? Т.е. где нужно прописать set profiling=1;, чтобы после щелчка по ссылке и загрузке страницы, ввести там же show profiles; и получить результат?
P.S. Кстати похожий функционал реализован в модуле devel.

Надо порыться в направлении hook_boot и hook_exit. На крайняк можно попробовать на время отладки задать соответствующие sql-запросы где-нибудь в db_set_active и в конце файла index.php чтобы увидеть точно все профайлы. Хотя сам еще не пробовал, так что точно ничего не скажу.


Опубликовано b-man в пн, 28/09/2009 - 07:39.

Axel

Да я и сам тесно не работал, просто приходилось сталкиватся несколько раз и очень понравилось :)

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

По функционалу особо не скажу, не сравнивал, но то что просто быстрее и удобнее это факт. Если коротко, это как пользоватся компом с мышью и без :)

Все ИМХО конечно.


Опубликовано axel в вс, 04/10/2009 - 21:33.

b-man написал(а):

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

Заинтересовал, посмотрю теперь. Под mysql есть весьма функциональные GUI вроде dbforge или navicat, значительно мощнее дефолтного gui от mysql - с визуальными конструкторами, шаблонами и пр., но afaik в обоих средства профайлинга не предлагаются (explain только).

С мышью или без мыши зависит от того как построен интерфейс :) В командной строке от мыши одни неудобства.


Опубликовано devart в пт, 05/02/2010 - 21:00.

Уважаемые пользователи!
Такая функциональность как "Профилировщик MySQL" будет доступна в dbForge Studio for MySQL (Русская редакция) в версии v4.20.
Также в версии 4.20 будет значительно улучшено визуализация explain.

Пожелания можно оставить здесь: http://www.devart.com/ru/forums/viewtopic.php?t=13003

Спасибо,
Команда разработчиков dbForge Studio for MySQL.


Новое на сайте