Mysql开启慢查询日志

查看mysql的慢查询日志是否开启
show variables like '%query%';

 

 

可以看到slow_query_log的值是OFF,mysql默认是不启用慢查询日志的。这里还有个long_query_time,默认是10秒,也就是超过了10秒即为慢查询。

log_queries_not_using_indexes,如果设置为ON,则会将所有没有使用索引的查询都记录为慢查询

 

启用慢查询日志:
set global slow_query_log='ON';

指定日志的输出格式:

MySQL支持TABLE和FILE两种输出格式,可以用下面的命令来查看当前的输出格式:
show variables like '%log_output%';

设置输出格式:
set global log_output='FILE';
set global log_output='TABLE';
set global log_output='FILE,TABLE';

 

注意事项:
开启慢查询日志后,由于日志记录操作,在一定程度上会占用CPU资源、影响mysql的性能;但是可以阶段性/临时性开启,用来定位性能瓶颈。性能优化相关的sql语句,要全部在cmd窗口里执行,而不要在SQLyog里,因为SQLyog会修改我们的sql语句,在最后加上limit 0, 1000

数据库优化:

开启慢查询日志,定位执行慢的SQL语句
设置慢SQL的时间阀值
开启慢查询日志的开关
执行SQL的时候,如果执行时间超过了时间阀值,这条SQL就会被记录到日志文件里
针对执行慢的SQL,添加索引做SQL优化

 

posted on 2023-07-25 17:23  春分夏至  阅读(224)  评论(0编辑  收藏  举报

导航