Как включить лог медленных запросов в MySQL

Знакомая ситуация: производительность вашего веб-сайта на MySQL внезапно падает, и вы не знаете, почему это происходит.

Вероятно, причина кроется в неоптимизированных запросах. Чтобы их обнаружить, достаточно включить запись медленных запросов MySQL.

Для активации записи медленных запросов необходимо открыть конфигурационный файл MySQL my.cnf:

sudo nano /etc/mysql/my.cnf

и раскомментировать/добавить следующие строки:

slow-query-log      = 1
slow-query-log-file = /var/log/mysql/mysql-slow.log
long_query_time     = 3
log-queries-not-using-indexes = 1
  • В опции slow_query_log указывается путь к файлу, в котором будут сохраняться записи запросов
  • В опции long_query_time указывается минимальное время выполнения запроса, после которого он считается медленным (в секундах)

После этого необходимо перезапустить сервер MySQL:

service mysql restart

Теперь медленные запросы будут записываться в файл /var/log/mysql/mysql-slow.log и можно следить за ними в режиме реального времени с помощью утилиты tail:

tail -f /var/log/mysql/mysql-slow.log

Это все, что вы должны сделать, чтобы включить лог медленных запросов в MySQL.