slow log文件很小,使用more less等命令就足够了。如果slow log很大怎么办?这里介绍MySQL自带的工具mysqldumpslow来帮你解析慢日志(也可以跳过本文,直接阅读Manual)。
1. 基本使用
$mysqldumpslow slow.log > slow.dat
$more slow.dat
输出的数据:
Count: 3 Time=62.67s (188s) Lock=0.00s (0s) Rows=1623770.7 (4871312), root[root]@localhost
SELECT /*!N SQL_NO_CACHE */ * FROM `feed_receive_0287`
这里我们能够获得:这条语句在满日志中的出现次数、平均执行时间、总共执行时间、row send等。例如:SELECT /*!N SQL_NO_CACHE */ * FROM `feed_receive_0287`一共执行了3次,平均每次使用62秒。
在默认情况下,mysqlslowdump的输出结果会使用N和S代替SQL中出现的数字和字符串。例如:如下慢日志
SELECT COUNT(*) as counter FROM feed_receive f WHERE f.RATED_UID=21621 AND f.suspended=-1 AND f.rater_type=4 AND f.rate=-2 AND f.username="orczhou.com"
会被mysqlslowdump抽象为:
SELECT COUNT(*) as counter FROM feed_receive f WHERE f.RATED_UID=N AND f.suspended=-N AND f.rater_type=N AND f.rate=-N AND f.username="S"
如果想禁用这种抽象,可以使用-a参数
2. 排序参数
mysqlslowdump默认输出结果是按照count(SQL出现的次数)排序的。可以通过如下的参数控制:
-s t 按总query time排序 -s at 按平均query time排序
-s l 按总locktime排序 -s al 按平均lock time排序
-s s 按总row send排序 -s as 按平均row send排序
-s c 按count排序 -- --
例如:
mysqldumpslow -s at slow.log.old > slow.2.dat #按照平均query time排序查看日志
3. 其他参数
-r 倒着排序
-a 不要将数字和字符串抽象成N和S
-g 仅仅分析相匹配的query
4. 常用命令
由上面的常用参数就可以组合出如下的常用命令:
mysqldumpslow -s t slow.log.old > slow.1.dat #按照query time排序查看日志
mysqldumpslow -s at slow.log.old > slow.2.dat #按照平均query time排序查看日志
mysqldumpslow -a -s at slow.log.old > slow.3.dat #按照平均query time排序并且不抽象数字的方式排序
mysqldumpslow -a -s c slow.log.old > slow.4.dat #安装执行次数排序
分享到:
相关推荐
标题:五款常用mysql slow log分析工具 描述:本文对五款常用的MySQL慢查询日志分析工具进行深入解析,旨在帮助DBA、开发者和运维人员更有效地定位和优化数据库性能瓶颈。 ### MySQL Slow Log概念 MySQL慢查询日志...
比较的五款常用工具mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 统计不同慢sql的 出现次数(Count...
首先,MySQL5的日志系统主要包括错误日志(error log)、二进制日志(binary log)、慢查询日志(slow query log)和通用日志(general 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 Slow Log是定位和解决MySQL性能问题的利器,通过合理地分析和优化,可以有效降低CPU占用,提升系统整体性能。在日常运维中,定期监控和分析Slow Log是保持数据库高效运行的重要步骤。
例如,你可以利用SSIS的流程图和邮件功能,每天定时读取MySQL的`slow_log`表,分析查询并发送报告。邮件效果图展示了这种监控的效果。 在大规模的MySQL部署中,慢查询日志监控至关重要,它能帮助识别性能瓶颈,优化...
MySQL的慢查询日志(log-slow-queries)是一项非常实用的功能,它允许数据库管理员监控和优化那些运行时间较长的SQL查询。启用这一特性可以帮助识别和解决数据库性能瓶颈,提升整体应用的响应速度。以下是关于开启慢...
本项目"mysql-slow-log-import-to-elasticsearch"的目标是将MySQL的慢查询日志有效地导入到Elasticsearch,以便于进行深度分析和快速检索。 在实现这个过程中,主要涉及以下几个关键知识点: 1. **MySQL慢查询日志...
MySQL的慢查询日志(Slow Query Log)是一个非常重要的功能,它记录了执行时间超过预设阈值的SQL查询,帮助管理员识别并优化性能瓶颈。本文将详细介绍如何正确且安全地清空在线的慢查询日志。 首先,我们查看当前慢...
写mod_log_slow的灵感来源于mysql的slowlog.以下内容翻译了官方的. 项目地址:http://code.google.com/p/modlogslow/ 1. 编译安装 mod_log_slow 1) 解压 代码如下: tar zxf mod_log_slow-1.0.7.tar.gz cd mod_log_...
MySQL中的慢查询日志(Slow Query Log)是一个非常重要的监控工具,它可以帮助数据库管理员识别和优化执行速度过慢的SQL查询。慢查询日志记录了那些执行时间超过预设阈值(默认为1秒)的SQL语句。下面将详细解释慢...
mysql-slow-query-log-visualizer 用于慢速 MySQL 查询的慢速查询日志可视化工具。 从分叉 由于这里的 github 页面功能,它是实时的(无需自己下载): ://benkaiser.github.io/mysql-slow-query-log-visualizer/
为了诊断MySQL故障,我们通常会观察系统日志文件,包括慢查询日志(slowlog)、警告日志(alertlog)、通用查询日志(generalquerylog)和二进制日志(binlog)。通过检查状态变量如com_select、com_insert等,我们...
使用pt-query-digest分析mysql slow query log pt-query-digest是一个perl脚本,用于分析mysql的slow query log,以了解查询性能和瓶颈。该工具可以帮助数据库管理员快速定位慢查询,并对其进行优化。 在使用pt-...
本篇文章将对比五款常用的MySQL Slow Log分析工具,以便选择最适合您需求的工具。 1. **mysqldumpslow**:这是MySQL官方提供的分析工具,主要用于统计慢查询日志中的SQL语句。它能展示不同慢SQL的出现次数、执行...
要开启慢查询日志,你需要在MySQL命令行中执行`set global log_slow_queries = on;`。这会全局启用慢查询日志功能,记录所有执行时间较长的查询。 2. **设置查询时间阈值**: 默认情况下,只有执行时间超过10秒的...