浅谈性能瓶颈之Mysql慢查询
1.开启测试环境的mysql数据库慢查询日志,然后在日志文件里自动记录这些慢查询,以及not using index的查询。数据库执行下面几个命令:
set global slow_query_log=on /*开启慢查询日志*/
set log_queries_not_using_indexes=on /*开启未用查询的日志*/
set global slow_query_log= “你想要的路径” /*该演示里使用默认路径*/
然后,执行如下命令,可以看到慢查询日志已经打开,并且可以看到慢查询日志存放的路径。
Show variables like ‘%slow%’
到这里我们已经开启了慢查询以及未走索引的查询日志记录,但是还差一步,那就是多慢的查询算慢查询?经过讨论,超过200毫秒的查询,都得记录分析调优。所以还需要执行:
Set long_query_time=0.1 /*超过100毫秒的都是慢查询*/
在测试环境做完上面设置后,就可以定期取日志,看到我们想看的慢查询记录,以及没有用到索引的查询。
下面是工作中的一个真实示例截图:
2.实时获取慢查询
在性能测试执行过程中,有时会发现某一个非常慢,此刻就需要实时找出正在执行的慢查询,我们可以借助下面的命令实现:
select id, 'user','host,db,command,'time',state, info
from information_schema.processlist where time >=0.1
这里的0.1秒可以根据自己需要调整,information_schema对应数据库的processlist表。
标签:set,log,0.1,性能,查询,测试,query,日志 From: https://www.cnblogs.com/canglongdao/p/18549785