Можно ли сделать чтение лога медленных запросов mysql в десктопном приложении?
Здравствуйте, такая задача
В mysql есть встроенная утилита для ловли медленных запросов
Если сделать десктопное приложение на WPF, то можно ли в нём реализовать чтение лога медленных запросов mysql?
Или можно как-то проще всю задачу организовать?
Суть в том, что нужно любое, самое простое приложение которое отслеживает медленные запросы
Slow query log - это самый обычный текстовый файл, пополняемый в задницу. Так что организовать его чтение - вообще не проблема. Прочитал, подписался на изменения (если надо на лету уведомлять о новых записях - ну или сам опрашивай длину файла), и всё...
шлешь в бесконечном цикле паузу и запрос SHOW FULL PROCESSLIST;
сохраняешь список идентификаторов для проверки а следующем шаге, проверка - если какой то id остался с прошлой проверки - считать этот запрос медленным, интервал (длина пауза) между запросами - пороговый интервал для определения что такое 'медленный'
upd. можешь добавить к идентификатору содержимое info, как то поможет, чтобы хоть немного обойти замечание акина
сохраняешь список идентификаторов для проверки а следующем шаге, проверка - если какой то id остался с прошлой проверки - считать этот запрос медленным
Что за ерунду Вы говорите... Id в выводе этой команды - это идентификатор соединения, никакого отношения к выполняемым запросам не имеющий. Соединение установлено - запись со своим Id появилась, и будет до тех пор, пока соединение не будет закрыто или разорвано. Вне зависимости от того, выполняются там какие-либо запросы или нет, медленные они или быстрые... а соединение event scheduler по вашей методике так и вовсе будет всегда в выводе, даже если ни одной event procedure нет.
хорошее замечание да
очень давно я списки процессов так мониторил, когда бакэнд переиспользовать подключения не умел (ну точнее я не умел это настраивать) и было каждый раз новое подключение, а сейчас в PDO это одна доп опция при подключении и все.
мне показалось такое решение будет сильно проще правильного профилирования, включить лог запросов, вот гугл хорошую статью подсказывает