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