一、mysql的慢查询
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time
值的SQL,则会被记录到慢查询日志中。long_query_time
的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
二、开启mysql慢查询
1、开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。
首先我们登陆数据库
然后 show variables like 'slow_query%';
可以看到现在慢查询日志是关着的。
set global slow_query_log='ON';
这样我们就开启了慢查询日志
2、然后我们在查一下是否把没有使用索引的sql记录到慢查询日志中
show variables like ’%log%‘;
我们要把这个未使用索引的查询记录到日志中
set global log_queries_not_using_indexes = on ;
3、下面我们在查看一下记录慢查询的时间
这个时候记录慢查询是1s 超过1s的慢查询都会被记录
mysql> set global long_query_time=1
这样就把慢慢查询的时间改为1s了
接下来我们就看看 执行代码会不会被记录
vi /www/wdlinux/mysql-5.5.54/data/iZ7ym4w9zbzqhhZ-slow.log
然后我们就能看见我们执行超过1s的语句就被会记录,然后我们有这些语句就能分析sql 优化我们的代码。
大家都知道,在分析sql语句性能的时候,我们都会使用explain
来分析sql语句的性能,但是如果每个sql都使用explain
的话,那开发速度也会有一定的影响。开启mysql的慢查询日志,我们就可以自定义阈值,当sql执行速度慢于阈值的时候,就自动记录下来,对以后的性能优化很有好处。
参考链接:https://www.happyrmb.com/index/article/show/id/51.html
end