1. 程式人生 > >mysqldumpslow簡單使用方法-mysqldumpslow詳細用法

mysqldumpslow簡單使用方法-mysqldumpslow詳細用法

慢查詢日誌分析工具
mysqldumpslow經常使用的引數:
-s,是order的順序
----- al 平均鎖定時間
-----ar 平均返回記錄時間
-----at 平均查詢時間(預設)
-----c 計數
-----l 鎖定時間
-----r 返回記錄
-----t 查詢時間
-t,是top n的意思,即為返回前面多少條的資料
-g,後邊可以寫一個正則匹配模式,大小寫不敏感的
例子:
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
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條記錄

作者簡介:
陳志珂(高階運維工程師),公眾號“鉛筆學園”運維內容合作作者之一。目前就職於中國最大的安卓應用軟體公司,任高階工程師,現在公司任php開發工程師,python開發工程師,高階運維工程師。
鉛筆學園:IT資源分享|知識分享,做初級程式設計師的指明燈
在這裡插入圖片描述