mysqldumpslow 慢查询分析工具使用手册

mysqldumpslow 慢查询分析工具使用手册

1、工具安装

mysqldumpslow工具,在mysql的bin目录下

2、基本参数

  • -a 说明不合并类似的SQL语句,显示具体的SQL语句中的数字和字符串
  • -s 表示按照何种方式排序

    1
    2
    3
    4
    5
    6
    7
    c 访问次数
    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
    15
    Count: 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)
-------------本文结束感谢您的阅读-------------
LiGuanCheng wechat
如有问题,请与我微信交流或通过右下角“daovoice”与我联系~。
请我喝一杯咖啡~