查看是否开始慢查询日志
命令: show variables like '%slow_query_log%';
ON开启,OFF关闭
如何开启慢查询日志
命令:set global slow_query_log = 1;
慢查询日志位置
命令:show variables like '%slow%';
查看慢查询时间
命令:show variables like 'long_query_time';
默认:10s
设置慢查询时间
命令:set global long_query_time=4;
这里设置完有时候不生效,需要退出并重新连接数据库即可。
有没有使用索引的查询
命令:show variables like 'log_queries_not_using_indexes';
开启使用索引的查询
命令:set global log_queries_not_using_indexes=1;
性能问题
在 MySQL的当前版本中,慢査询日志是开销最低、精度最高的测量查询时间的工具。如果还在担心开启慢查询日志会带来额外的IO开销,那大可以放心。我们在IO密集型场景做过基准测试,慢查询日志带来的开销可以忽略不计(实际上在CPU密集型场景的影响还稍微大一些)。更需要担心的是日志可能消耗大量的磁盘空间。如果长期开启慢査询日志,注意要部署日志轮转( log rotation)工具。或者不要长期启用慢査询日志,只在需要收集负载样本的期间开启即可。