Сегодня был неожиданно удивлен, какие удобные штуки таит в себе MySQL. ;-)
Хочу представить вашему вниманию фичу MySQL — профайлинг.
Появилась она начиная с версии 5.0.37.
Всего парой запросов можно узнать, какими запросами формируется страница (для веб-девелоперов)
и почему она тормозит.
И раньше подобный функционал был доступен, но пользоваться журналом запросов не в пример сложнее.
Вуаля! Все выполненные запросы за сессию с временем выполнения.
На мой взгляд очень просто и сверх-удобно.
Можно пойти дальше, и узнать подробно на что тратилось время по каждому запросу:
Подробнее о профайлинге в статье: Using the New MySQL Query Profiler
Upd: как точно подметил zayceslav show profiles по умолчанию показывает профили для 15 запросов. Кол-во запрсов можно увеличить с помощью параметра profiling_history_size, но не более чем до 100.
PS: это мой первый пост, прошу не судить строго
Хочу представить вашему вниманию фичу 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)
Вуаля! Все выполненные запросы за сессию с временем выполнения.
На мой взгляд очень просто и сверх-удобно.
Можно пойти дальше, и узнать подробно на что тратилось время по каждому запросу:
mysql> show profile for query 1; +--------------------------------+----------+ | Status | Duration | +--------------------------------+----------+ | starting | 0.000015 | | checking query cache for query | 0.000021 | | checking permissions | 0.000003 | | Opening tables | 0.000007 | | System lock | 0.000004 | | Table lock | 0.000023 | | init | 0.000005 | | optimizing | 0.000005 | | executing | 0.000025 | | end | 0.000003 | | end | 0.000001 | | query end | 0.000002 | | storing result in query cache | 0.000003 | | freeing items | 0.000003 | | closing tables | 0.000004 | | logging slow query | 0.000002 | | cleaning up | 0.000001 | +--------------------------------+----------+ 17 rows in set (0.00 sec)
Подробнее о профайлинге в статье: Using the New MySQL Query Profiler
Upd: как точно подметил zayceslav show profiles по умолчанию показывает профили для 15 запросов. Кол-во запрсов можно увеличить с помощью параметра profiling_history_size, но не более чем до 100.
mysql> set profiling=1; mysql> set profiling_history_size=100;
PS: это мой первый пост, прошу не судить строго