MySQL自带一个perl的200多行的脚本名为mysqldumpslow,可对慢查询日志信息进行分析,使用非常便利,这篇文章对其使用进行介绍。
参数说明
参数选项 | 使用说明 |
---|---|
-a | 显示具体的数字和字符信息,而不是用N或者S代替 |
-n | 将数字抽象显示为指定的数字个数 |
--debug | 指定debug模式运行 |
-g | 指定大小写不敏感的正则表达 |
–help | 显示帮助信息 |
-h | 指定MySQL主机名称用于选择慢查询日志(日志文件名称,缺省为*-slow.log) |
-i | 指定服务器示例名称用于选择慢查询日志 |
-l | 显示总时间(包括lock锁定时间) |
-r | 逆序排序 |
-s | 指定排序方式 |
-t | 只显示指定数量的结果内容 |
–verbose | Verbose模式 |
排序方式
使用-s指定排序方式,主要有如下四种方式:
- l: 按锁定时间排序
- r: 按结果行数排序
- t: 按查询时间排序
- c:按执行次数排序
a为平均,与上述参数结合可形成新的排序方式:
- at:按平均查询时间排序(默认排序方式)
- al:按平均锁定时间排序
- ar:按平局结果行数排序
使用示例
可结合上述参数进行使用,比如如下使用示例
示例1:返回执行次数最高的top3
执行命令:mysqldumpslow -s c -t 5 /var/lib/mysql/`hostname`-slow.log
示例2: 返回结果行数最多的top3
执行命令:mysqldumpslow -s r -t 3 /var/lib/mysql/`hostname`-slow.log
示例3: 返回执行时间最长的top3
执行命令:mysqldumpslow -s t -t 3 /var/lib/mysql/`hostname`-slow.log
示例4: 返回执行时间最长的top3(字符和数字不使用N和S替代)
执行命令:mysqldumpslow -s t -a -t 3 /var/lib/mysql/`hostname`-slow.log
参考内容
https://dev.mysql.com/doc/refman/5.7/en/mysqldumpslow.html