Как включить Slow Query Log в MySQL

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

Подключимся к MySQL серверу и посмотрим текущие параметры:

mysql -u root -p
SHOW GLOBAL VARIABLES LIKE 'slow\_%';
SHOW GLOBAL VARIABLES LIKE 'long_query_time';
SHOW GLOBAL VARIABLES LIKE 'log_queries_not_using_indexes';

Изменить эти параметры без перезапуска MySQL можно так (замечу что в версиях MySQL ниже 5.7 slow_query_log называется log_slow_queries):

SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
SET GLOBAL long_query_time = 5;
SET GLOBAL slow_query_log = 'ON';

Для включения логирования запросов без индексов:

SET GLOBAL log_queries_not_using_indexes = 'ON';

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

Можно также указать эти параметры в файле конфигурации:

slow_query_log=ON
slow_query_log=/var/log/mysql/slow.log
long_query_time=5
log_queries_not_using_indexes=ON

И перезапустить MySQL сервере чтобы применить изменения:

sudo /etc/init.d/mysql restart

Для более читаемого формата можно использовать утилиту pt-query-digest:

apt install percona-toolkit
pt-query-digest /var/log/mysql/slow.log > /var/log/mysql/slow_ixnfo.com.txt

Не забываем отключить эти параметры после завершения анализа логов:

SET GLOBAL slow_query_log = 'OFF';
SET GLOBAL log_queries_not_using_indexes = 'OFF';

Смотрите также мои статьи:
Несоответствие времени в логах ошибок и медленных запросов
Установка и использование mysqltuner.pl
Как изменить join_buffer_size

Оставьте комментарий

Добавить комментарий