Как выявить медленные SQL запросы?

Это случалось с каждым из нас при разработке веб-сайтов или приложений, использующих MySQL в качестве базы данных. Производительность внезапно сильно падала, и вы не имели понятия, почему это случилось. Этому могут быть причиной многие факторы (сильная загрузка CPU, нехватка дискового пространства, или слабая пропускная способность канала), но также это может быть и неоптимизированный запрос, выполняемый намного дольше, чем должен.

Как узнать, какие из запросов выполняются дольше всего?
В MySQL есть встроенный функционал для ведения логов медленных запросов.

Для включения этого функционала необходимо произвести одно из действий:

добавить следующие строки в /etc/my.cnf:
log-slow-queries=/tmp/slow_queries.log
long_query_time=10

вызвать mysqld со следующими параметрами:
–log-slow-queries[=/tmp/slow_queries.log]

long_query_time — это максимальное количество секунд, которое может выполняться запрос, прежде чем он будет записан в лог медленных запросов.

Опубликовано в MySQL

Рубрики