4

导语

MySQL 默认是没有开启慢查询日志的,可以通过命令行或者修改 my.cnf 来开启。开启后对性能有一定的影响,生产环境不建议开启。我的版本是 5.7.25,下面分别介绍两种开启方式。

命令行

  1. 首先是进入到 MySQL 的服务中
  2. 查看下关于慢查询的配置 show variables like 'slow_query_log%';

慢查询配置
第一行可以看到配置为 OFF,没有开启;第二行是慢查询日志的保存路径,默认值就不修改了。

  1. 查看下默认的超时时间配置 show variables like 'long_query_time%';

超时时间
默认是 10 秒,注意是大于配置时间会被记录。

  1. 先将超时时间修改为 3set global long_query_time=3;
  2. 然后开启配置 set global slow_query_log=1;
  3. 退出 MySQL 并重新进入
  4. 测试一下 select sleep(5);
  5. 去看下慢查询的日志

查看日志

可以看到日志中已经有了记录。重启服务,并且删除日志,以便下面方法的进行。

修改配置

  1. 修改 my.cnf,在 [mysqld] 添加下面配置
slow_query_log=1
slow_query_log_file=/var/lib/mysql/slow-log.log
long_query_time=3
  1. 重启服务
  2. 进入 MySQL 测试 select sleep(5);
  3. 查看日志

查看日志

结语

两种方式都配置成功。需要注意的是使用命令行开启,重启服务后慢查询就会失效;修改配置文件的方式,会一直生效


参考资料:MySQL 慢查询MySQL查询优化(3)-慢查询开启、日志分析


Haoyuqi
472 声望23 粉丝

PHPer