一、查看当前状态
MySQL版本:5.7.31 MySQL Community Server (GPL)
mysql> show variables like 'slow_query%';
mysql> show variables like 'long_query_time';
变量名解释:
slow_query_log : 是否开启慢查询日志
slow_query_log_file : MySQL数据库慢查询日志存储路径
long_query_time : 慢查询阈值,当查询时间多于设定的阈值时,记录日志。
二、开启慢查询记录
先创建慢查询日志文件,并赋予mysql用户权限
touch /var/log/mysqld-slow.log
chown -R mysql:mysql /var/log/mysqld-slow.log
一、全局临时配置
注:重启后配置失效
mysql> set global slow_query_log='ON';
mysql> set global slow_query_log_file = '/var/log/mysqld-slow.log';
mysql> set global long_query_time= 3; #sql执行超过3秒就记录到日志
二、修改配置文件
注:永久有效,防止MySQL意外重启
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/log/mysqld-slow.log
long_query_time = 3
三、验证是否成功
mysql> select sleep(3);
查看日志
四、日志分析
高级分析工具:pt-query-digest
官方文档:https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html
安装
[root@local-dev-public-all01 ~]# yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@local-dev-public-all01 ~]# yum install -y percona-toolkit
[root@local-dev-public-all01 ~]# pt-query-digest --version
pt-query-digest 3.3.1