MySQL/MariaDB - CentOS 7 - как включить лог медленных запросов slow query log

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск

Доступная цена

MySQL/MariaDB - CentOS 7 - как включить лог медленных запросов slow_query_log

Youtube video: https://youtu.be/lvIPhDdNIlg

Для логирования медленных запросов нужно добавить в /etc/my.cnf строки:

# vi /etc/my.cnf
[mysqld]
log_output = file
slow_query_log = ON
long_query_time = 0
log_slow_admin_statements = ON
log_slow_slave_statements = ON
slow_query_log_file = /var/log/mariadb/slow-queries.log
long_query_time  - это число секунд, которые запросы выполняется. Можно увеличить до 1-2 секунды, либо оставить 0, чтобы логировать все запросы.

Также стоит обратить внимание на опцию log_queries_not_using_indexes и добавить ее если не нужно включать запросы, которые используют индексы.

Создать файл логов медленных запросов:

# touch /var/log/mariadb/slow-queries.log
# chown mysql:mysql /var/log/mariadb/slow-queries.log

и перезапустить MySQL/MariaDB сервер:

 # systemctl restart mariadb


Проанализировать медленные ТОП-50 sql запросов можно сразу через команду pt-query-digest:

# pt-query-digest --limit=50 /var/log/mariadb/slow-queries.log > all.log
# egrep -r Overall all.log - покажет общую статистику по запросам, число запрос в секунду.

pt-query-digest - ставится из пакета Percona Toolkit:

Пример для CentOS 7:
# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# yum install percona-toolkit