在MySQL 中,慢查询日志主要用来记录响应时间超过阈值的SQL。
响应时间超过 long_query_time(默认值为 10秒),会被记录到慢查询日志中,日志可以设置为文件或者数据库表。
在命令行输入如下命令可以检查慢查询日志是否被打开:
show VARIABLES like '%query%'
如果slow_query_log 的值为 ON,则开启慢查询日志;如果slow_query_log 的值为OFF,则为关闭慢查询日志。
开启慢查询日志
方法一:全局变量设置
将 slow_query_log 全局变量设置为“ON”状态
mysql> set global slow_query_log='ON';
设置慢查询日志存放的位置
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
查询超过1秒就记录
mysql> set global long_query_time=1;
方法二:配置文件设置
修改配置文件my.cnf,在[mysqld]下的下方加入
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
重启MySQL服务
service mysqld restart
查看设置后的参数
show VARIABLES like '%query%'
测试
1.执行一条慢查询SQL语句
mysql> select sleep(2);
2.查看是否生成慢查询日志
ls /usr/local/mysql/data/slow.log
如果日志存在,MySQL开启慢查询设置成功!