共计 645 个字符,预计需要花费 2 分钟才能阅读完成。
导语
MySQL 默认是没有开启慢查询日志的,可以通过命令行或者修改 my.cnf
来开启。开启后对性能有一定的影响,生产环境 不建议开启。我的版本是 5.7.25
,下面分别介绍两种开启方式。
命令行
- 首先是进入到 MySQL 的服务中
- 查看下关于慢查询的配置
show variables like 'slow_query_log%';
第一行可以看到配置为 OFF
,没有开启;第二行是慢查询日志的保存路径,默认值就不修改了。
- 查看下默认的超时时间配置
show variables like 'long_query_time%';
默认是 10
秒,注意是 大于 配置时间会被记录。
- 先将超时时间修改为
3
秒set global long_query_time=3;
- 然后开启配置
set global slow_query_log=1;
- 退出 MySQL 并重新进入
- 测试一下
select sleep(5);
- 去看下慢查询的日志
可以看到日志中已经有了记录。重启服务,并且删除日志,以便下面方法的进行。
修改配置
- 修改
my.cnf
,在[mysqld]
添加下面配置
slow_query_log=1
slow_query_log_file=/var/lib/mysql/slow-log.log
long_query_time=3
- 重启服务
- 进入 MySQL 测试
select sleep(5);
- 查看日志
结语
两种方式都配置成功。需要注意的是使用命令行开启,重启服务后慢查询就会 失效 ;修改配置文件的方式,会一直 生效。
参考资料:MySQL 慢查询、MySQL 查询优化(3)- 慢查询开启、日志分析。
正文完