五款常用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 a simple smtp class
Nov 26 PHP
php session 错误
May 21 PHP
解析yii数据库的增删查改
Jun 20 PHP
浅析php工厂模式
Nov 25 PHP
Yii框架中memcache用法实例
Dec 03 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
php如何执行非缓冲查询API
Jul 22 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
取选中的radio的值
2010/01/11 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
利用python实现数据分析
2017/01/11 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
python pyheatmap包绘制热力图
2018/11/09 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
什么是会话Bean
2015/05/14 面试题
计算机专业毕业生的自我评价
2013/11/18 职场文书
园林施工员岗位职责
2013/12/11 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
大学生助学金感谢信
2015/01/21 职场文书
行政处罚决定书
2015/06/24 职场文书
安全教育主题班会教案
2015/08/12 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫