ySQL必备工具第一位: mk-query-digest
没有什么比低下的MySQL性能表现更让人抓狂的了。尽管大家常常下意识地认为是硬件配置滞后导致此类问题,但事实上在大多数情况中真正的症结并不
在这里。性能表现不佳往往由以下原因造成,即某些执行缓慢的查询阻塞了其它查询指令的顺畅进行,并由此产生了一个响应时间迟缓的恶性循环。由于优化查询指
令比起升级硬件来说能够节约大量成本,因此合乎逻辑的优化方式应该从分析查询指令日志文件入手。
数据库管理员们应该经常分析查询日志,进而把握运行环境的各类波动。而如果大家从来没有进行过该项分析,请立即着手进行吧。如果对此缺乏经验,依靠
第三方软件的帮助也是不错的选择;尽管很多人认为那些软件只会在瞎忙一气之后给出一个虚构的漂亮结果,但我得说,实际上它们通常情况下还是确切有效的。
在当前的诸多选择中,mk- query-digest是查询日志分析工具中最棒的一款。它由Baron
Schwartz和我本人联合编写,功能成熟性、记录充分性以及测试彻底性都做得相当到位。MySQL本身包含了一款名为mysqldumpslow的查
询日志分析器,但该工具不仅陈旧过时、验证规范不准确,而且缺乏广泛的实际应用加以支持。而其它几款较为著名的查询日志分析器,包括我前几年编写的
mysqlsla,都与mysqldumpslow具备相同的缺点。
mk-query-digest能够分析查询日志内容并根据汇总得出的执行时间及其它各项指标的统计信息自动生成报告。由于查询日志中的信息量极为巨大,有时甚至包含数以百万计的条目,因此此类分析工作必须依靠特定工具来完成。
mk-query-digest可以帮助大家找出那些与其它查询指令相比耗时最长的条目。对这些低速查询加以优化将使整套MySQL体系的运行速度
大幅提高,最大响应延迟也将相应下降。查询指令的优化工作本身堪称艺术,其中包含诸多细致入微的技巧,但整个流程的基本原则总是共通的:寻获低速查询指
令、进行优化、提高查询响应时间。
该工具使用起来非常简便,执行mk-query-digest
slow-query.log,那些运行速度迟缓的查询指令将被输出至slow-query.log文件。工具中还提供了“查询指令复核”功能,意在列出
那些我们尚未加以核对或批准的查询指令。如此一来,我们就可以仅仅对那些新出现的查询指令进行有针对性的处理,繁琐枯燥的日志分析工作也随之变得更加快
速、高效。
下载地址: http://maatkit.org/get/mk-query-digest
维护负责人: Daniel Nichter and Baron Schwartz
更多信息: http://maatkit.org/ |
http://code.google.com/p/maatkit/