五款常用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 相关文章推荐
图书管理程序(一)
Oct 09 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
一些使用频率比较高的php函数
Oct 03 PHP
PHP 命令行参数详解及应用
May 18 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
php 邮件发送问题解决
Mar 22 PHP
递归实现php数组转xml的代码分享
May 14 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 PHP
php中加密解密DES类的简单使用方法示例
Mar 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
深入分析PHP设计模式
2020/06/15 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
node.js中的console用法总结
2014/12/15 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
python练习程序批量修改文件名
2014/01/16 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
python excel和yaml文件的读取封装
2021/01/12 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
公司总经理助理岗位职责
2014/07/09 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
python随机打印成绩排名表
2021/06/23 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python
python实现双向链表原理
2022/05/25 Python