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