1)简介
MySQL开启慢查询日志,可以记录下查询超过指定时间的SQL语句。通过分析慢查询SQL,才能更快定位、分析和优化数据库性能。
2)参数说明
slow_query_log, 用于设置慢查询是否开启,可选值:'OFF', 'ON' 。
slow_query_log_file, 用于设置慢查询日志存放的位置。MySQL运行账户需要有该目录的写权限,建议设置为MySQL的数据存放目录。
long_query_time,用于设置SQL执行超过多少秒就写入慢查询日志文件;
3)设置方法
设置方法有两种,一种是采用设置全局变量的方式,重启MySQL后失效,另一种采用在配置文件中设置,需要重启MySQL,永远有效。
方法一:采用设置全局变量方式
3.1)查看当前慢查询相关参数
mysql > show variables like 'slow_query%';
mysql > show variables like 'long_query_time’;
3.2)设置方法
方法1:变量全局设置方式,即可生效,MySQL重启后失效。
# 开启slow_query_log全局变量开关,设置为开启状态 ‘ON'
mysql > set global slow_query_log = 'ON'
# 设置慢查询日志存放位置
mysql > set global slow_query_log_file = '/usr/local/mysql/slow.log';
# 设置查过2秒就记录至慢查询文件中
mysql > set global long_query_time = 3;
方法二:采用在配置文件中设置
3.4)修改my.conf文件,在 [mysqld] 下增加如下配置
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/slow.log
long_query_time = 3
3.5 重启MySQL服务
service mysqld restart
4)验证测试
执行一条慢查询SQL
mysql > select sleep(4);
查看慢查询日志中是否记录了该慢查询SQL