五款常用mysql slow log分析工具的比较分析


Posted in PHP onMay 22, 2011

启用 slow log

有两种启用方式:
1, 在my.cnf 里 通过 log-slow-queries[=file_name]
2, 在mysqld进程启动时,指定--log-slow-queries[=file_name]选项

比较的五款常用工具

mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter

mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下:
五款常用mysql slow log分析工具的比较分析
主要功能是, 统计不同慢sql的
出现次数(Count), 
执行最长时间(Time), 
累计总耗费时间(Time), 
等待锁的时间(Lock), 
发送给客户端的行总数(Rows), 
扫描的行总数(Rows), 
用户以及sql语句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).

mysqlsla, hackmysql.com推出的一款日志分析工具(该网站还维护了 mysqlreport, mysqlidxchk 等比较实用的mysql工具)
五款常用mysql slow log分析工具的比较分析
整体来说, 功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等.

格式说明如下:
总查询次数 (queries total), 去重后的sql数量 (unique)
输出报表的内容排序(sorted by)
最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.

Count, sql的执行次数及占总的slow log数量的百分比.
Time, 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.
95% of Time, 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.
Lock Time, 等待锁的时间.
95% of Lock , 95%的慢sql等待锁时间.
Rows sent, 结果行统计数量, 包括平均, 最小, 最大数量.
Rows examined, 扫描的行数量.
Database, 属于哪个数据库
Users, 哪个用户,IP, 占到所有用户执行的sql百分比

Query abstract, 抽象后的sql语句
Query sample, sql语句

除了以上的输出, 官方还提供了很多定制化参数, 是一款不可多得的好工具.

mysql-explain-slow-log, 德国人写的一个perl脚本.
http://www.willamowius.de/mysql-tools.html

五款常用mysql slow log分析工具的比较分析
五款常用mysql slow log分析工具的比较分析
功能上有点瑕疵, 不仅把所有的 slow log 打印到屏幕上, 而且统计也只有数量而已. 不推荐使用.
mysql-log-filter, google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.
http://code.google.com/p/mysql-log-filter/
五款常用mysql slow log分析工具的比较分析
功能上比官方的mysqldumpslow, 多了查询时间的统计信息(平均,最大, 累计), 其他功能都与 mysqldumpslow类似.
特色功能除了统计信息外, 还针对输出内容做了排版和格式化, 保证整体输出的简洁. 喜欢简洁报表的朋友, 推荐使用一下.
myprofi, 纯php写的一个开源分析工具.项目在 sourceforge 上.
http://myprofi.sourceforge.net/

 五款常用mysql slow log分析工具的比较分析

功能上, 列出了总的慢查询次数和类型, 去重后的sql语句, 执行次数及其占总的slow log数量的百分比.
从整体输出样式来看, 比mysql-log-filter还要简洁. 省去了很多不必要的内容. 对于只想看sql语句及执行次数的用户来说, 比较推荐.

总结

工具/功能 一般统计信息 高级统计信息 脚本 优势
mysqldumpslow 支持 不支持 perl mysql官方自带
mysqlsla 支持 支持 perl 功能强大,数据报表齐全,定制化能力强.
mysql-explain-slow-log 支持 不支持 perl
mysql-log-filter 支持 部分支持 python or php 不失功能的前提下,保持输出简洁
myprofi 支持 不支持 php 非常精简
PHP 相关文章推荐
PHP 错误之引号中使用变量
May 04 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
php 冒泡排序 交换排序法
May 10 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 #PHP
Look And Say 序列php实现代码
May 22 #PHP
php利用cookie实现访问次数统计代码
May 19 #PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 #PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 #PHP
php中全局变量global的使用演示代码
May 18 #PHP
一个PHP分页类的代码
May 18 #PHP
You might like
一个显示天气预报的程序
2006/10/09 PHP
PHP 字符串分割和比较
2009/10/06 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
Javascript里使用Dom操作Xml
2007/01/22 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
JS求平均值的小例子
2013/11/29 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
Python入门篇之字符串
2014/10/17 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
python for 循环获取index索引的方法
2019/02/01 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
厨房管理计划书
2014/04/27 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
同意离婚答辩状
2015/05/22 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL