mysql慢查詢日誌分析

2021-10-04 09:24:26 字數 1030 閱讀 4479

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...