五款常用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来检测proxy
Oct 09 PHP
php 获取select下拉列表框的值
May 08 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
php 常用算法和时间复杂度
Jul 01 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php curl 获取https请求的2种方法
Apr 27 PHP
php分割合并两个字符串的函数实例
Jun 19 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
PHP通过文件路径获取文件名的实例代码
Oct 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
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
es6在react中的应用代码解析
2017/11/08 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python搭建简易服务器分析与实现
2012/12/15 Python
python抽取指定url页面的title方法
2018/05/11 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python实现FTP文件传输的实例
2019/07/07 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
Python学习之os模块及用法
2020/06/03 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
校园安全检查制度
2014/02/03 职场文书
教师党员个人整改措施
2014/10/27 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技