1、什麼是mysqlsla?
簡單的說就是分析mysql log的工具,我主要是用他來分析下mysql slow log。
2、下載下傳
<a href="http://hackmysql.com/mysqlsla" target="_blank">http://hackmysql.com/mysqlsla</a>
3、安裝
tar
cd
perl Makefile.PL
make && make install
4、運作
mysqlsla -lt slow /tmp/slow.log
(通過這個參數來制定log的類型,主要有slow, general, binary, msl, udl,分析slow log時通過制定為slow.)
到這一步也許會出現如下的錯誤提示:
<a href="http://blog.51cto.com/attachment/201209/160600698.jpg" target="_blank"></a>
解決方式如下:
還有可能出現如下的錯誤,方法也在圖中的紅框處
<a href="http://blog.51cto.com/attachment/201210/010645465.jpg" target="_blank"></a>
另一種出錯的可能,如下,方法也在圖中
<a href="http://blog.51cto.com/attachment/201210/000157566.jpg" target="_blank"></a>
這樣就ok了!因為我這沒有資料,是以給大家看下空的時候的表現
<a href="http://blog.51cto.com/attachment/201209/160734239.jpg" target="_blank"></a>
5、指令參數說明
1) -log-type (-lt) type logs:
通過這個參數來制定log的類型,主要有slow, general, binary, msl, udl,分析slow log時通過制定為slow.
2) -sort:
制定使用什麼參數來對分析結果進行排序,預設是按照t_sum來進行排序。
t_sum:按總時間排序
c_sum:按總次數排序
c_sum_p: sql語句執行次數占總執行次數的百分比。
3) -top:
顯示sql的數量,預設是10,表示按規則取排序的前多少條
4) &ndash;statement-filter (-sf) [+-][TYPE]:
過濾sql語句的類型,比如select、update、drop.
[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如"+SELECT,INSERT",不出現的預設是-,即不包括。
5) db:要處理哪個庫的日志:
例如,隻取backup庫的select語句、按c_sum_p排序的前2條記錄
mysqlsla -lt slow -sort c_sum_p -sf "+select" -db backup -top 2 /tmp/127_slow.log
1)queries total: 總查詢次數
2)unique:去重後的sql數量
3)sorted by : 輸出報表的内容排序 最重大的慢sql統計資訊, 包括 平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.
(t_sum:按總時間排序;c_sum:按總次數排序;c_sum_p: sql語句執行次數占總執行次數的百分比)
4)Count: sql的執行次數及占總的slow log數量的百分比.
5)Time: 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.
6)95% of Time: 去除最快和最慢的sql, 覆寫率占95%的sql的執行時間.
7)Lock Time: 等待鎖的時間.
8)95% of Lock: 95%的慢sql等待鎖時間.
9)Rows sent: 結果行統計數量, 包括平均, 最小, 最大數量.
10)Rows examined: 掃描的行數量.
11)Database: 屬于哪個資料庫.
12)Users: 哪個使用者,IP, 占到所有使用者執行的sql百分比.
13)Query abstract: 抽象後的sql語句.
14)Query sample: sql語句.
本文轉自 小強測試幫 51CTO部落格,原文連結:http://blog.51cto.com/xqtesting/1008279,如需轉載請自行聯系原作者