MySQL慢查询日志分析工具mysqldumpslow教程

介绍

mysqldumpslow 是 MySQL 自带的慢查询日志分析工具,用于汇总和统计慢查询日志中的 SQL 语句。以下是其核心参数的详细说明及使用场景:
• 文章已整理好,喜欢的朋友可以转存一下,方便查看:https://pan.quark.cn/s/f52968c518d3


基本语法

mysqldumpslow [OPTIONS] [LOG_FILE]

参数详解

1. 排序参数 -s

指定排序方式,支持以下排序类型:
t(默认):按总执行时间排序(Query_time 总和)。

c:按出现次数排序(COUNT(*))。

l:按锁定时间排序(Lock_time 总和)。

r:按单次查询的平均时间排序(Query_time / COUNT(*))。

ar:按平均返回行数排序(Rows_sent / COUNT(*))。

al:按平均锁定时间排序(Lock_time / COUNT(*))。

示例:

# 按总执行时间排序
mysqldumpslow -s t /path/to/slow.log

# 按出现次数排序
mysqldumpslow -s c /path/to/slow.log

2. 显示数量 -t

限制输出结果的数量(默认显示所有结果)。

示例:

# 显示前 10 条最耗时的 SQL
mysqldumpslow -s t -t 10 /path/to/slow.log

3. 模式匹配 -g

仅显示匹配特定模式的 SQL 语句(支持正则表达式)。

示例:

# 筛选包含 "user" 表的慢查询
mysqldumpslow -g "user" /path/to/slow.log

# 筛选 SELECT 语句
mysqldumpslow -g "SELECT" /path/to/slow.log

4. 抽象处理控制 -a

禁用自动抽象功能(默认自动将数字和字符串替换为 N'S')。

示例:

# 显示原始数字和字符串(不抽象)
mysqldumpslow -a /path/to/slow.log

5. 数字抽象位数 -n

指定抽象数字时的最小位数(默认 1 位)。

示例:

# 将连续 3 位以上的数字替换为 N
mysqldumpslow -n 3 /path/to/slow.log

6. 反向排序 -r

将排序结果反向输出(默认升序,-r 改为降序)。

示例:

# 按总执行时间降序排序
mysqldumpslow -s t -r /path/to/slow.log

7. 调试模式 -d

输出调试信息(用于排查工具自身问题)。

示例:

mysqldumpslow -d /path/to/slow.log

8. 帮助和版本 -h / -v

-h:显示帮助信息。

-v:显示版本信息。


输出字段解析

默认输出格式如下:

Count: 5  Time=10.5s (52s)  Lock=0.002s (0s)  Rows=100.0 (500), user@host
  SELECT * FROM table WHERE id = N

Count:SQL 出现的次数。

Time:平均执行时间(总执行时间)。

Lock:平均锁定时间(总锁定时间)。

Rows:平均返回行数(总返回行数)。

user@host:执行该 SQL 的用户和主机。


常用场景示例

1. 统计最频繁的慢查询

mysqldumpslow -s c -t 5 /path/to/slow.log

2. 查找平均耗时最长的 SQL

mysqldumpslow -s ar -t 10 /path/to/slow.log

3. 分析特定表的慢查询

mysqldumpslow -g "orders" /path/to/slow.log

4. 显示具体数值(禁用抽象)

mysqldumpslow -a -s t /path/to/slow.log

工具局限性

• 抽象问题:默认抽象数字和字符串,可能掩盖实际 SQL 特征。

• 复杂分析不足:无法像 pt-query-digest 提供执行计划或上下文分析。


总结建议

• 快速汇总日志时使用 mysqldumpslow

• 复杂场景使用 pt-query-digest(Percona Toolkit)或可视化工具(如 MySQL Workbench)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值