mysqldumpslow使用详解

mysqldumpslow 是 MySQL 自带的一个用于分析慢查询日志的工具,它可以帮助数据库管理员和开发人员快速定位执行时间长、执行次数多的慢查询语句,从而对数据库进行性能优化。以下是关于 mysqldumpslow 的详细使用说明。

1. 慢查询日志的开启

在使用 mysqldumpslow 之前,需要确保 MySQL 的慢查询日志功能已经开启。可以通过以下步骤进行设置:
  • 临时开启:在 MySQL 客户端中执行以下命令,仅在当前会话中生效。
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;  -- 设置慢查询的时间阈值为 2 秒
  • 永久开启:编辑 MySQL 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf),添加或修改以下配置项。
 
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

修改完成后,重启 MySQL 服务使配置生效。

2. mysqldumpslow 基本语法

mysqldumpslow [选项] [慢查询日志文件]

如果不指定慢查询日志文件,默认会从 /var/log/mysql/mysql-slow.log 读取日志。

3. 常用选项及示例

按查询时间排序

  • -s t:按照查询时间(Query Time)排序,显示执行时间最长的查询。
 
mysqldumpslow -s t /var/log/mysql/mysql-slow.log

该命令会将慢查询日志中的查询语句按照执行时间从长到短进行排序并输出。

按锁定时间排序

  • -s l:按照锁定时间(Lock Time)排序,显示锁定时间最长的查询。
mysqldumpslow -s l /var/log/mysql/mysql-slow.log

按查询次数排序

  • -s c:按照查询次数(Count)排序,显示执行次数最多的查询。
mysqldumpslow -s c /var/log/mysql/mysql-slow.log

显示前 N 条查询

  • -t N:只显示前 N 条查询结果。例如,显示执行时间最长的前 5 条查询。
mysqldumpslow -s t -t 5 /var/log/mysql/mysql-slow.log

忽略大小写

  • -i:在比较查询语句时忽略大小写。
mysqldumpslow -i -s t /var/log/mysql/mysql-slow.log

过滤查询语句

  • -g 正则表达式:使用正则表达式过滤查询语句,只显示匹配的查询。例如,只显示包含 SELECT 关键字的查询。
mysqldumpslow -g 'SELECT' /var/log/mysql/mysql-slow.log

4. 输出结果解读

mysqldumpslow 的输出结果通常包含以下信息:
 
Reading mysql slow query log from /var/log/mysql/mysql-slow.log
Count: 10  Time=1.50s (15s)  Lock=0.00s (0s)  Rows=100.0 (1000), user[user]@[host]
  SELECT * FROM table_name WHERE column = 'value';
  • Count:查询执行的次数。
  • Time:查询的总执行时间和平均执行时间。
  • Lock:查询的总锁定时间和平均锁定时间。
  • Rows:查询返回的总行数和平均行数。
  • 查询语句:具体的 SQL 查询语句。

通过分析这些信息,可以找出执行时间长、执行次数多的慢查询,进而对这些查询进行优化,提高数据库的性能。

posted on   数据派  阅读(13)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示