tail -f slow_query.log
# time: 110107 16:22:11
# user@host: root[root] @ localhost
# query_time: 9.869362 lock_time: 0.000035 rows_sent: 1 rows_examined: 6261774
set timestamp=1294388531;
select count(*) from ep_friends;
字段分析:
第一行,sql查詢執行的時間 第二行,執行sql查詢的連線資訊,使用者和連線ip 第三行,記錄了一些我們比較有用的資訊,如下解析:
- query_time,這條sql執行的時間,越長則越慢
- lock_time,在mysql伺服器階段(不是在儲存引擎階段)等待表鎖時間
- rows_sent,查詢返回的行數
- rows_examined,查詢檢查的行數,越長就當然越費時間
第四行,設定時間戳,沒有實際意義,只是和第一行對應執行時間。
第五行及後面所有行(第二個# time:之前),執行的sql語句記錄資訊,因為sql可能會很長。
方法一:使用mysql程式自帶的mysqldumpslow命令分析
例如:mysqldumpslow -s c -t 10 /tmp/slow-log
這會輸出記錄次數最多的10條sql語句,得出的結果和上面一般慢查詢記錄的格式沒什麼太大差別,這裡就不展開來詳細解析了。
方法二:使用pt(percona toolkit)工具的pt-query-digest進行統計分析。
這個是由percona公司出品的乙個用perl編寫的指令碼,只有安裝上pt工具集才會存在,有興趣的朋友就要先安裝pt工具了。直接分析慢查詢檔案,執行如下:
pt-query-digest slow_querys.log >t.txt
因為記錄裡還是可能有很多sql在,看起來還是費勁,所以建議輸出到檔案來看了,具體不多過多介紹。
mysql慢查詢日誌分析
mysql 有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 long query time 10 log slow queries long quer...
mysql慢查詢日誌分析
我喜歡做一些系統效能優化事情,覺得這樣有種成就感,實現了自己的價值。所以經常到系統上去top netstat uptime看看系統執行的狀況。今天我對mysql資料庫進行索引建立。mysql的慢查詢日誌是我部署環境時就開啟了的。mysqldumpslow是對慢查詢日誌進行統計的工具,講一下有用的引數...
mysql慢查詢日誌分析
分類 mysql postgresql mysql有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 long query time 10 log slo...