在日常工作中,我们经常都会遇到mysql的慢查询。今天给大家介绍下,如何开启mysql的慢查询日志,同时结合工作中遇到的实际情况进行调整下。
在mysql中,慢日志查询是默认关闭着的。所以慢日志查询需要手动进行开启。开启慢日志查询主要有两种方式,一种是命令行的方式开启,另外一种是配置文件的方式开启,两种方式开启都能达到相同的效果,但是如果实在命令行进行开启的话,遇到mysql重启,那么开启的命令就会失效,mysql慢日志查询记录又会被关闭。
先介绍下mysql使用命令的方式开启慢日志查询
1、使用如下命令开启慢日志查询
set global slow_query_log=on;
2、然后设置慢查询的时间阈值
set long_query_time=1;
3、然后查看慢日志的记录文件日志路径
show global variables like 'slow_query_log_file'
这个文件在服务器上对应的目录下就能找到。
4、查看query相关的参数
show variables like '%quer%';
此时慢查询就开启了,如果查询语句执行耗时超过1秒,则会被记录到慢查询日志里面。我们直接根据对应的sql进行优化即可。
再介绍下mysql配置文件的方式开启慢日志查询
1、这里我们采用slave进行配置。先查看下是否开启了慢查询
show variables like '%quer%';
可以看到没有开启慢日志查询。
2、修改my.cnf,添加如下配置
#开启慢查询 slow_query_log=ON #最长执行时间 (查询的最长时间,超过了这个时间则记录到日志中) . long_query_time=2
然后把mysql进行重启
docker restart mysql-slave
3、再查询下mysql的query
show variables like '%quer%';
可以看到已经开启了。
以上就是两种方式开启mysql的慢日志查询。
备注:
1、在大型的系统开发阶段,我们就应该在开发服务器上配置对应的慢查询日志,假设我们生产环境能容忍的慢查询时间是2s,则在开发的mysql服务器上把慢查询日志设置为1s。这样子在开发阶段就可以避免很多慢sql的出现,可以记得得到修正。
2、如果我们希望所有执行的sql语句都在日志中打印出来,那么我们只需要把 long_query_time设置为0即可。
还没有评论,来说两句吧...