慢查询日志使用

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

MySQL慢日志往往是大家定位SQL性能问题。通过慢日志分析可以调整索引使用。这是使用最多的一个功能。

目前MySQL也支持毫秒级别以下的慢日志记录,这个功能其实有很多用处,这里大概给大家讲解一下。该功能开启参数:long_query_time

通常使用这个参数的几个环境:

需要得到一个业务的所有SQL可以在测试环境中MySQL的long_query_time设置为0.000001:

set global long_query_time=0.000001;

flush logs;

这样基本上所有对MySQL请求的sql都会记录到慢日志中。通过日志分析可以全面了解一下SQL样式及整体运行调用分布。(重要的库可以考虑开启该参数记录相应的log用于审计使用)

同样对于生产环境,可以通过开启该参数,定期收集一下线上的SQL运行情况,做一些对比,方便了解目前线上SQL运行的情况。能更供更多的指导。 有了慢查询日志,通过慢查询日志分析工具很容易得到一份不错的分析结果。 对于慢日志,目前来讲,官方版本还是有点弱,这也是我推荐使用Percona-Server的一个原因之一,该版本的慢日志功能非常强大,有兴趣的同学也可以猛击(Percona Slow Query Log)去学习一下吧。 也建议官方MySQL开发团队能学习一下Percona对Slow Query的处理,对于DBA排查问题非常有帮助。