(转) mysqldumpslow使用说明总结
原文:http://blog.csdn.net/langkeziju/article/details/49301993
mysqldumpslow使用說明
mysqldumpslow --help
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
??--verbose????verbose
??--debug??????debug
??--help???????write this text to standard output
??-v???????????verbose
??-d???????????debug
??-s ORDER?????what to sort by (al, at, ar, c, l, r, t), 'at' is default
????????????????al: average lock time
????????????????ar: average rows sent
????????????????at: average query time
?????????????????c: count
?????????????????l: lock time
?????????????????r: rows sent
?????????????????t: query time?
??-r???????????reverse the sort order (largest last instead of first)
??-t NUM???????just show the top n queries
??-a???????????don't abstract all numbers to N and strings to 'S'
??-n NUM???????abstract numbers with at least n digits within names
??-g PATTERN???grep: only consider stmts that include this string
??-h HOSTNAME??hostname of db server for *-slow.log filename (can be wildcard),
???????????????default is '*', i.e. match all
??-i NAME??????name of server instance (if using mysql.server startup script)
??-l???????????don't subtract lock time from total time
經常使用幾個命令
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
-s,是order的順序,說明寫的不夠詳細,俺用下來,包括看了代碼,主要有
c,t,l,r和ac,at,al,ar,分別是按照query次數,查詢時間,lock的時間和返回的記錄數來排序,前面加了a的平均數
-t,是top n的意思,即為返回前面多少條的數據
-g,后邊可以寫一個正則匹配模式,大小寫不敏感的
例子
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
使用mysqldumpslow的分析結果不會顯示具體完整的sql語句,
說明:
1:假如真正的sql語句如下:SELECT * FROM sms_send WHERE service_id=10 GROUP BY content LIMIT 0, 1000;
mysqldumpslow顯示的結果會是:
Count: 1??Time=1.91s (1s)??Lock=0.00s (0s)??Rows=1000.0 (1000), vgos_dba[vgos_dba]@[10.130.229.196]
SELECT * FROM sms_send WHERE service_id=N GROUP BY content LIMIT N, N;
2:如果我們再執行一條SELECT * FROM sms_send WHERE service_id=20 GROUP BY content LIMIT 10000, 1000;
mysqldumpslow顯示的結果會是:
Count: 2??Time=2.79s (5s)??Lock=0.00s (0s)??Rows=1.0 (2), vgos_dba[vgos_dba]@[10.130.229.196]
SELECT * FROM sms_send WHERE service_id=N GROUP BY content LIMIT N, N;
雖然這兩條語句條件不一樣,
1:一個是server_id=10,一個是server_id=20
2:一個是LIMIT 0, 1000,一個是LIMIT 10000, 1000
但是mysqldumpslow分析會認為這是一種類型的語句,會合并顯示。
3:假設我們執行SELECT * FROM sms_send WHERE service_id<=10 GROUP BY content LIMIT 0, 1000;
執行mysqldumpslow結果是
Count: 1??Time=2.91s (2s)??Lock=0.00s (0s)??Rows=1000.0 (1000), vgos_dba[vgos_dba]@[10.130.229.196]
SELECT * FROM sms_send WHERE service_id<=N GROUP BY content LIMIT N, N;
可以看出它和上面我們寫的sql語句是兩種類型
mysqldumpslow的分析結果
Count會告訴我們這種類型的語句執行了幾次,Time會告訴我們這種類型的語句執行的最大時間,Time=2.79s (5s)中(5s)
是指這類型的語句執行總共花費的時間
Count: 2??Time=2.79s (5s)??Lock=0.00s (0s)??Rows=1.0 (2), vgos_dba[vgos_dba]@[10.130.229.196]
告訴我們執行了2次,最大時間是2.79s,總共花費時間5s,lock時間0s,單次返回的結果數是1條記錄,2次總共返回2條記錄m
mysqldumpslow -s t -t 10 slow.log
查詢的結果是10條執行時間最慢的sql語句,其中-s t是指此類類型的語句的執行總時長
Count: 1??Time=2.91s (2s)??Lock=0.00s (0s)??Rows=1000.0 (1000), vgos_dba[vgos_dba]@[10.130.229.196]
和
Count: 2??Time=2.79s (5s)??Lock=0.00s (0s)??Rows=1.0 (2), vgos_dba[vgos_dba]@[10.130.229.196]
比較的結果是
Count: 2??Time=2.79s (5s)??Lock=0.00s (0s)??Rows=1.0 (2), vgos_dba[vgos_dba]@[10.130.229.196]排在前面,
以為比較的時長是(5s)和(2s),而不是2.79s和2.91s
-s at比較的也是(5s)/count:2和(2s)/Count: 1
所以:-s at是Count: 1??Time=2.91s (2s)??Lock=0.00s (0s)??Rows=1000.0 (1000), vgos_dba[vgos_dba]@[10.130.229.196]排在前面。
?Rows=1.0 (2) 是按照以下邏輯展示的
(2)是指在Count: 2次數總共返回了2條記錄集;row=1.0顯示(2)/Count: 2,如果此時Count是3,
那么row的計算方式是Rows=2/3,Rows=0.67
主要功能是, 統計不同慢sql的
出現次數(Count),
執行最長時間(Time),
累計總耗費時間(Time),
等待鎖的時間(Lock),
發送給客戶端的行總數(Rows),
掃描的行總數(Rows)
轉載于:https://www.cnblogs.com/liujiacai/p/7602610.html
總結
以上是生活随笔為你收集整理的(转) mysqldumpslow使用说明总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 首次写文章,分享一些渗透、安全工具
- 下一篇: 深入理解计算机系统(2.6)------