索引的添加可在刚建表时就添上,也有一些地方考虑不周到,需要项目上线后后期优化去添加。添加索引的目的是为了让select语句效率更快,一个项目用到的select语句会很多,我们不可能一个一个去检查,最好MySQL能主动列出来哪些select语句效率低,然后我们才有针对性地去优化。
MySQL有一个功能正好可满足我们优化的需求,开启慢查询。
慢查询:
输入MySQL语句:
show variables like '%quer%';
有四个跟慢查询有关的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
开启了慢查询,慢查询的日志记录也开启了。
此处为测试时间, 慢查询上限时间不应太小,最好在5-10秒之内。根据自己的需要随意设置,比如只记录大于5秒的SQL语句,那就long_query_time = 5。
修改好配置后,需重启下MySQL(因为我们只是在文件里修改了配置参数,当前正在内存运行的MySQL需要重启获取这些参数)
这样就可以了
日志文件很简单,一看就能明白。找到这些耗时的SQL语句,然后分析做优化。
还有一种直接在命令行里改:
一定要加上global,不加global只能在本次会话中生效,MySQL客户端再次连接MySQL时就失效了。
这种方式不用重启mysql服务,但重启mysql服务后就会失效。
总结:
大家只要记住有慢查询这个功能就OK,真需要的时候不会开启就去百度搜一下。