Здравствуй Хабр!
Периодически возникает необходимость отследить запросы, которые отправляет Ваше приложение к базе данных. К примеру:
— Вам нужно отладить/доработать чужой код;
— Запросы генерируются с помощью сторонней библиотеки (к примеру ActiveRecord), не понятно, какие именно и сколько их;
— Нужно оптимизировать приложение: посмотреть какие запросы и сколько их, посмотреть explain этих запросов.
В этих ситуациях на помощь приходит Beaver mysql logger.
Для отслеживания запросов достаточно mysql консоли, включить set global general_log = 'on'; и set global log_output = 'table'; и просматривать логи в таблице general_log, но это не удобно:
— отсутствие форматирования и подсветки;
— если параллельно выполняется несколько потоков — визуально сложнее найти искомый запрос.
etc.
Поскольку в general_log мне приходилось заглядывать часто, а готовых инструментов я не нашел — я написал Beaver mysql logger.
Демо.
На демо сайте explain и выполнение ограничены одним запросом в целях безопасности (всегда будет выполняться запрос по умолчанию, независимо от того, какой Вы запрос выбрали).
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/2e6/77c/602/2e677c602a8f5f0bf1abd3164a016e98.png)
Что умеет:
— включать/отключать general_log;
— выводить лог в приятный Web интерфейс;
— поиск по логам;
— делать explain запросов;
— можно отредактировать и выполнить запрос;
— очищать general_log.
Скачать можно отсюда: Сайт проекта.
При обнаружении багов — просьба сообщить. Спасибо!
Периодически возникает необходимость отследить запросы, которые отправляет Ваше приложение к базе данных. К примеру:
— Вам нужно отладить/доработать чужой код;
— Запросы генерируются с помощью сторонней библиотеки (к примеру ActiveRecord), не понятно, какие именно и сколько их;
— Нужно оптимизировать приложение: посмотреть какие запросы и сколько их, посмотреть explain этих запросов.
В этих ситуациях на помощь приходит Beaver mysql logger.
Для отслеживания запросов достаточно mysql консоли, включить set global general_log = 'on'; и set global log_output = 'table'; и просматривать логи в таблице general_log, но это не удобно:
— отсутствие форматирования и подсветки;
— если параллельно выполняется несколько потоков — визуально сложнее найти искомый запрос.
etc.
Поскольку в general_log мне приходилось заглядывать часто, а готовых инструментов я не нашел — я написал Beaver mysql logger.
Демо.
На демо сайте explain и выполнение ограничены одним запросом в целях безопасности (всегда будет выполняться запрос по умолчанию, независимо от того, какой Вы запрос выбрали).
![](https://habrastorage.org/getpro/habr/post_images/2e6/77c/602/2e677c602a8f5f0bf1abd3164a016e98.png)
Что умеет:
— включать/отключать general_log;
— выводить лог в приятный Web интерфейс;
— поиск по логам;
— делать explain запросов;
— можно отредактировать и выполнить запрос;
— очищать general_log.
Скачать можно отсюда: Сайт проекта.
При обнаружении багов — просьба сообщить. Спасибо!