五款常用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生成静态HTML速度快类库
Mar 18 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
PHP之短标签开启设置
Jun 17 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
PHP读取Excel类文件
May 15 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
php表单处理操作
Nov 16 PHP
php文件包含的几种方式总结
Sep 19 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
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
javascript的BOM
2016/05/03 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
员工自我鉴定范文
2013/10/06 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
网站创业计划书
2014/04/30 职场文书
股票投资建议书
2014/05/19 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis