慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long_query_time值的sql,則會被記錄到慢查詢日誌中。
long_query_time預設值為10s,預設情況下,mysql資料庫並不啟動慢查詢日誌,需要我們手動來設定這個引數,當然,如果不是調優需要的話,一般不建議啟動該引數,因為開啟慢查詢日誌會或多或少帶來一定的效能影響。慢查詢日誌支援將日誌記錄寫入檔案,也支援將日誌記錄寫入資料庫表。//檢視慢查詢日誌是否開啟
//開啟慢查詢日誌
//檢視long_query_time引數
預設10秒以上的sql語句記錄到日誌中
//修改long_query_time引數
修改後,需要重新連線或新開乙個會話才能看到修改值
//檢視索引的查詢
//開啟索引的查詢
**分析語句慢的原因:** 開啟慢查詢日誌以後去執行時間比較長的sql語句,再通過explain 或者profiles來分析語句。
show profiles; //顯示當前所有連線的工作狀態.
注意以下情況:converting heap to myisam 查詢結果太大時,把結果放在磁碟 (語句寫的不好,取資料太多)
create tmp table 建立臨時表(如group時儲存中間結果,說明索引建的不好)
copying to tmp table on disk 把記憶體臨時表複製到磁碟 (索引不好,表字段選的不好)
sending data 一次性傳送的資料量(資料量不能太大)
特別注意:
mysql 5.5 以後加了乙個profile設定,可以觀察到具體語句的執行步驟:
show variables like 「profiling」; //檢視profile是否開啟
set profiling=on;//profile開啟
show profile for query 5; //檢視單條語句執行過程
show profile block io,cpu for query 2; //檢視cup io等花費的時間
mysql中查詢日誌與慢查詢日誌
一 查詢日誌 查詢日誌記錄mysql中所有的query,通過 general log file name 來開啟該功能。該功能記錄了所有的query 含select 會影響效能。預設的查詢日誌檔名為 hostname.log。預設情況下是不開啟 查詢日誌的。檢視是否啟用查詢日誌及 儲存檔案及路徑 二...
mysql開啟慢查詢日誌 MySQL慢日誌體系建設
慢查詢日誌是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的sql語句,在很大程度上會影響資料庫整體的效能,是mysql優化的乙個重要方向。在58的雲db平台建設中,慢sql系統作為乙個非常重要功能模組,不僅是dba日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業...
mysql慢日誌時間 MySQL慢查詢日誌優化
一 慢查詢日誌概念 mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。long query time的預設值為10,意思是執行10s以上的語句。預設情況下,mys...