`

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

阅读更多

转自:http://www.iteye.com/topic/242516

 

mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具.

启用 slow log

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

比较的六款常用工具

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

monyog,这是我使用最多的一款mysql监视工具,也支持用于slow log的查询。
MONyog MySQL Monitor and Advisor:
在本机装客户端监视mysql,基于网页的,安装完了会开一个本地的web服务。
可以监视多个服务器,并且针对各种配置有一些优化的意见。

 

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

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

格式说明如下:
总查询次数 (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


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

功能上, 列出了总的慢查询次数和类型, 去重后的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 非常精简

 

  • 大小: 12.9 KB
分享到:
评论

相关推荐

    五款常用mysql slow log分析工具

    标题:五款常用mysql slow log分析工具 描述:本文对五款常用的MySQL慢查询日志分析工具进行深入解析,旨在帮助DBA、开发者和运维人员更有效地定位和优化数据库性能瓶颈。 ### MySQL Slow Log概念 MySQL慢查询日志...

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

    比较的五款常用工具mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 统计不同慢sql的 出现次数(Count...

    工具查询MYSQL5 LOG 分析工具-mysql-log-analysis.zip

    这款名为"mysql-log-analysis"的工具正是针对MySQL5的日志分析软件,它可能包含了解析、统计和报告MySQL日志功能的源代码,对于数据库管理员和开发人员来说,这是一个非常实用的资源。 首先,MySQL5的日志系统主要...

    五款常用mysqlslowlog分析工具的比较.pdf

    本篇文章将对比五款常用的MySQL Slow Log分析工具,以便选择最适合您需求的工具。 1. **mysqldumpslow**:这是MySQL官方提供的分析工具,主要用于统计慢查询日志中的SQL语句。它能展示不同慢SQL的出现次数、执行...

    php性能分析之php-fpm慢执行日志slow log用法浅析

    本文实例讲述了php性能分析之php-fpm慢执行日志slow log用法。分享给大家供大家参考,具体如下: ...<value name=request_slowlog_timeout>5s <value name=slowlog>logs/php-fpm-slowlog.log</value> PHP 5.3.3 之

    详解MySQL中SlowLog的配置方法(图文)

    MySQL中的慢查询日志(Slow Query Log)是一个非常重要的功能,它可以帮助数据库管理员识别和优化执行时间较长的SQL查询,从而提升系统的整体性能。本文将详细介绍如何配置MySQL的慢查询日志。 首先,慢查询日志自...

    使用MySQL Slow Log来解决MySQL CPU占用高的问题

    MySQL Slow Log是一个强大的工具,用于诊断和解决MySQL服务器性能问题,特别是当遇到CPU占用率过高时。当MySQL在处理查询时消耗过多CPU资源,可能导致整个系统负载增加,从而影响服务的响应速度和整体效率。通过分析...

    MySQL开启慢查询日志log-slow-queries的方法

    MySQL的慢查询日志(log-slow-queries)是一项非常实用的功能,它允许数据库管理员监控和优化那些运行时间较长的SQL查询。启用这一特性可以帮助识别和解决数据库性能瓶颈,提升整体应用的响应速度。以下是关于开启慢...

    MySQL日志分析(包括工具)

    以下是比较常用的五款MySQL日志分析工具: 1. **mysqldumpslow**:MySQL官方提供的慢查询日志分析工具,支持基本的统计信息提取。 2. **mysqlsla**:Perl脚本,功能强大,支持高级统计信息提取,能够生成全面的数据...

    mysql-slow-query-log-visualizer:用于慢速 MySQL 查询的慢速查询日志可视化工具。 从 https 分叉

    mysql-slow-query-log-visualizer 用于慢速 MySQL 查询的慢速查询日志可视化工具。 从分叉 由于这里的 github 页面功能,它是实时的(无需自己下载): ://benkaiser.github.io/mysql-slow-query-log-visualizer/

    mysql-slow-log-import-to-elasticsearch:将mysql慢查询日志导入elasticsearch进行分析

    在这个项目中,使用了`Awk`命令行工具,这是一个强大的文本分析工具,可以处理结构化的文本数据。通过编写Awk脚本,我们可以从日志中提取出需要的字段。 3. **数据预处理**:在解析日志后,可能需要对数据进行清洗...

    mysql正确安全清空在线慢查询日志slow log的流程分享

    MySQL的慢查询日志(Slow Query Log)是一个非常重要的功能,它记录了执行时间超过预设阈值的SQL查询,帮助管理员识别并优化性能瓶颈。本文将详细介绍如何正确且安全地清空在线的慢查询日志。 首先,我们查看当前慢...

    mysql-slow-query-log-parser:PHP库用于解析MySQL慢查询日志

    MySQL的慢查询日志解析器PHP库用于解析MySQL慢查询日志用法使用composer安装: composer require gumbercules/mysqlslow包括名称空间: use Gumbercules\MysqlSlow;实例化新的文件阅读器: $parser = new LogParser...

    mysql性能工具的使用.txt

    本文将详细介绍几种常用的MySQL性能分析工具及其使用方法,帮助读者更好地理解和掌握MySQL的性能优化技巧。 #### MySQL性能分析概述 MySQL提供了多种工具来帮助用户分析和优化其性能,主要包括慢查询日志、`...

    MYSQL常见故障分析

    为了诊断MySQL故障,我们通常会观察系统日志文件,包括慢查询日志(slowlog)、警告日志(alertlog)、通用查询日志(generalquerylog)和二进制日志(binlog)。通过检查状态变量如com_select、com_insert等,我们...

Global site tag (gtag.js) - Google Analytics