一、mysql的慢查询

           MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

二、开启mysql慢查询

1、开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

首先我们登陆数据库

然后 show variables like 'slow_query%';

mysql慢日志切割 mysql 慢日志 时间_mysql慢日志切割


可以看到现在慢查询日志是关着的。

set global slow_query_log='ON';

这样我们就开启了慢查询日志

2、然后我们在查一下是否把没有使用索引的sql记录到慢查询日志中

show variables like ’%log%‘;

mysql慢日志切割 mysql 慢日志 时间_慢查询_02


我们要把这个未使用索引的查询记录到日志中

set global log_queries_not_using_indexes = on ;

3、下面我们在查看一下记录慢查询的时间

mysql慢日志切割 mysql 慢日志 时间_MySQL_03

这个时候记录慢查询是1s 超过1s的慢查询都会被记录

mysql> set global long_query_time=1

这样就把慢慢查询的时间改为1s了

mysql慢日志切割 mysql 慢日志 时间_开启慢日志_04

接下来我们就看看 执行代码会不会被记录

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