第十章:第10节 MySQL进阶篇——慢查询

更新于:2017-08-25 14:44:27

索引的添加可在刚建表时就添上,也有一些地方考虑不周到,需要项目上线后后期优化去添加。添加索引的目的是为了让select语句效率更快,一个项目用到的select语句会很多,我们不可能一个一个去检查,最好MySQL能主动列出来哪些select语句效率低,然后我们才有针对性地去优化。


MySQL有一个功能正好可满足我们优化的需求,开启慢查询。


慢查询:


输入MySQL语句:


show variables like '%quer%';


1.png


有四个跟慢查询有关的MySQL系统变量:

log_slow_queries = OFF //慢查询没有开启。

long_query_time = 10.000000 //系统默认的慢查询时间上限是10秒

slow_query_log = OFF //是否打开日志记录

slow_query_log_file = D:\amp\MySQL\data\20170324-174422-slow.log //日志存放位置


我们来打开慢查询,打开慢查询其实就是把这几个变量的变量值改下。


可以有两种打开方式,一个在MySQL的配置文件里打开:


比如我本地的my.ini


1.png


开启了慢查询,慢查询的日志记录也开启了。

此处为测试时间, 慢查询上限时间不应太小,最好在5-10秒之内。根据自己的需要随意设置,比如只记录大于5秒的SQL语句,那就long_query_time = 5。


修改好配置后,需重启下MySQL(因为我们只是在文件里修改了配置参数,当前正在内存运行的MySQL需要重启获取这些参数)


1.png


这样就可以了


1.png


日志文件很简单,一看就能明白。找到这些耗时的SQL语句,然后分析做优化


还有一种直接在命令行里改:


1.png


一定要加上global,不加global只能在本次会话中生效,MySQL客户端再次连接MySQL时就失效了。


这种方式不用重启mysql服务,但重启mysql服务后就会失效。


总结:


大家只要记住有慢查询这个功能就OK,真需要的时候不会开启就去百度搜一下。