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

Главные вкладки

Аватар пользователя Химический Али Химический Али 24 сентября 2009 в 1: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)

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

Комментарии

Аватар пользователя axel axel 25 сентября 2009 в 18:37

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

Аватар пользователя vikeng vikeng 25 сентября 2009 в 17:47

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

Аватар пользователя vgoodvin vgoodvin 26 сентября 2009 в 9:56

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

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

Аватар пользователя b-man b-man 28 сентября 2009 в 11:39

Axel

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

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

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

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

Аватар пользователя axel axel 5 октября 2009 в 1:33

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

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

Аватар пользователя devart devart 6 февраля 2010 в 0: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.