首页 >> 工具知识

mysql命令-mysqldumpslow

mysqldumpslow 是 MySQL 自带的一个慢查询日志分析工具,用于解析和统计 MySQL 慢查询日志文件,帮助 DBA 和开发人员快速定位性能问题。

一、基本语法

mysqldumpslow [选项] [日志文件...]

二、常用选项详解

选项说明
-s ORDER排序方式(必选)
-t NUM只显示前 N 条记录
-g PATTERN正则匹配,只显示符合模式的语句
-a不将数字抽象为 N,字符串抽象为 S
-n NUM抽象数字时,至少 NUM 位数字才被抽象
-l不减去锁定时间
-r反转排序顺序
-v详细模式
-d调试模式
-h HOST数据库主机名(慢查询日志中记录)

三、排序方式(-s 参数)

t, at    按查询时间排序(默认 at)
l, al    按锁定时间排序
r, ar    按返回行数排序
c        按执行次数排序

四、使用示例

1. 查看最耗时的10条SQL

mysqldumpslow -s t -t 10 /var/lib/mysql/slow.log

2. 查看执行次数最多的10条SQL

mysqldumpslow -s c -t 10 /var/lib/mysql/slow.log

3. 查看包含特定表的慢查询

mysqldumpslow -g "user" /var/lib/mysql/slow.log

4. 显示完整SQL(不抽象数字和字符串)

mysqldumpslow -a -s t -t 5 /var/lib/mysql/slow.log

5. 多个日志文件一起分析

mysqldumpslow -s t /var/lib/mysql/slow1.log /var/lib/mysql/slow2.log

五、输出结果解读

示例输出:

Count: 25  Time=12.34s (308s)  Lock=0.00s (0s)  Rows=100.0 (2500), root[root]@localhost
  SELECT * FROM users WHERE id = N AND name = 'S'
  • Count: 执行次数(25次)

  • Time: 平均执行时间(12.34秒),括号内是总时间(308秒)

  • Lock: 平均锁定时间(0.00秒)

  • Rows: 平均返回行数(100行),括号内是总行数(2500行)

  • 用户信息: root[root]@localhost

  • SQL语句: 抽象后的SQL(N代表数字,S代表字符串)

六、实际案例

场景:分析生产环境慢查询

# 1. 找到最慢的5个查询
mysqldumpslow -s t -t 5 /var/lib/mysql/server-slow.log

# 2. 查找特定操作的慢查询(如JOIN)
mysqldumpslow -g "JOIN" /var/lib/mysql/server-slow.log

# 3. 分析INSERT语句的性能
mysqldumpslow -s c -g "INSERT" /var/lib/mysql/server-slow.log

# 4. 完整显示具体的数值
mysqldumpslow -a -s t -t 3 /var/lib/mysql/server-slow.log

七、结合其他工具使用

1. 与grep配合过滤

# 查找特定时间段的慢查询
mysqldumpslow /var/lib/mysql/slow.log | grep "2024-01-15"

# 查找特定用户的慢查询
mysqldumpslow /var/lib/mysql/slow.log | grep "root@"

2. 输出到文件

# 生成分析报告
mysqldumpslow -s t -t 20 /var/lib/mysql/slow.log > slow_report.txt

八、注意事项

  1. 慢查询日志需要开启

    1. -- 查看慢查询配置
      SHOW VARIABLES LIKE 'slow_query%';
      SHOW VARIABLES LIKE 'long_query_time';
      
      -- 临时开启慢查询日志
      SET GLOBAL slow_query_log = 'ON';
      SET GLOBAL long_query_time = 2;  -- 2秒以上视为慢查询
  2. 权限要求:需要有读取慢查询日志文件的权限

  3. 日志格式:确保慢查询日志格式是文本格式(log_output = FILE)


最新文章
mysql命令-mysqlimport2026-02-01
mysql命令-mysql_tzinfo_to_sql2026-02-01
mysql命令-mysql2026-02-01
mysql命令-my_print_defaults2026-02-01
mysql命令-mysqldumpslow2026-02-01
mysql命令-mysqld2026-02-01
mysql命令-mysql_secure_installation2026-02-01
mysql命令-myisampack2026-02-01
mysql命令-perror2026-02-01
mysql命令-mysqldump2026-02-01
备案号:蜀ICP备2023042032号-1