当前位置: 首页 > news >正文

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@hostSELECT * 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)。

相关文章:

  • Roboflow标注数据集
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(6):MCP服务大规模部署方案
  • 安卓AppWidget桌面小组件在国产移动设备的一些适配问题
  • 驱动车辆诊断测试创新 | 支持诊断测试的模拟器及数据文件转换生成
  • pybind11 使用指南+示例
  • 【AI论文】RepText:通过复制渲染视觉文本
  • java访问修饰符
  • SSM学习
  • LibAI Lab走进西浦:重塑“AI+建筑”教育
  • C语言之操作符
  • 从 PID 到 Agent:工业控制算法的五代进化史与智能协同革命
  • 哪些因素会影响远程视频监控的质量?浅述EasyCVR视频智能诊断技术
  • 手动创建一份konga对应helm的chart项目
  • 【学习笔记】机器学习(Machine Learning) | 第五章(1)| 分类与逻辑回归
  • 浅谈C# record关键字
  • DeepSeek谈《凤凰项目 一个IT运维的传奇故事》
  • 蛋白质数据库UniProt介绍
  • git中reset和checkout的用法
  • Webug4.0通关笔记06- 第8关CSV注入
  • 文件读取操作
  • 党政机关停车场免费、食堂开放,多地“五一”游客服务暖心周到
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高
  • 韩国检方结束对尹锡悦私宅的扣押搜查
  • 圆桌|如何应对特朗普政府的关税霸凌?一种联合国视角的思考
  • 俄外长:俄将在不损害伙伴关系前提下发展对美关系
  • 马上评丨又见酒店坐地起价,“老毛病”不能惯着