mysqldumpslow 慢查询分析工具使用手册
1、工具安装
mysqldumpslow工具,在mysql的bin目录下
2、基本参数
-a
说明不合并类似的SQL语句,显示具体的SQL语句中的数字和字符串-s
表示按照何种方式排序1
2
3
4
5
6
7c 访问次数
l 锁定时间
r 返回记录
t 查询时间
al 平均锁定时间
ar 平均返回记录数
at 平均查询时间-t
返回前面多少条数据-g
后边搭配一个正则匹配模式,大小写不敏感
3、常用命令
得到查询时间最多的前300条SQL,可以通过>/tmp/0513-0516-3306_slow_analysis.log 把分析的结果打印到文件中去,方便后续分析
1
./mysqldumpslow -a -s t -t 300 >/tmp/0513-0516-3306_slow_analysis.log /usr/local/mysql/20220516_slow.txt
得到返回记录集最多的10个查询。
1
mysqldumpslow -a -s r -t 10 /mysql/slow-log.txt
得到按照查询时间排序的前10条里面,含有左连接的查询语句。
1
mysqldumpslow -a -s t -t 10 -g “left join” /mysql/slow-log.txt
4、结果分析
执行结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Count: 1 Time=1999.42s (1999s) Lock=0.06s (0s) Rows=1645853.0 (1645853), fatradeusr[fatradeusr]@[100.64.57.247]
SELECT
uid,
orderNum,
requestId,
requestMSg,
responseMsg,
success,
retmsg,
addtime,
querytime,
queryReq,
queryResp
FROM ysbehalfpaysendmsg
WHERE addtime BETWEEN DATE_FORMAT('2022-05-15','%Y-%m-%d 00:00:00') AND DATE_FORMAT('2022-05-15','%Y-%m-%d 23:59:59')参数解释:
Count
会告诉我们这种类型的语句执行了几次Time
会告诉我们这种类型的语句执行的最大时间Time=2.79s (5s)
中(5s)
是指这类型的语句执行总共花费的时间
主要功能是, 统计不同慢sql的出现次数(Count
),执行最长时间(Time
),累计总耗费时间(Time
),等待锁的时间(Lock
),发送给客户端的行总数(Rows
),扫描的行总数(Rows
)