MySQL的日誌系統
MySQL的日誌類型共有5種,不同的日誌類型,記錄的日誌資訊不一樣。這裡的日誌類型有如下這些:
錯誤記錄檔:
1、記錄了伺服器啟動和關閉過程中的資訊
2、記錄了伺服器運行過程中產生的錯誤資訊
3、記錄了時間調度器運行一個事件產生的資訊
4、記錄了從伺服器啟動從伺服器處理序時產生的資訊
MySQL相關的記錄檔
關於錯誤記錄檔的相關變數有:
log_error=/PATH/TO/ERROR_LOG_FILENAME
定義錯誤記錄檔檔案。作用範圍為全域或會話層級,可用於設定檔,屬非動態變數。
log_warnings=#
設定是否將警告資訊記錄進錯誤記錄檔。預設設定為1,表示啟用;可以將其設定為0以禁用;而其值為大於1的數值時表示將新發起串連時產生的“失敗的串連”和“拒絕訪問”類的錯誤資訊也記錄進錯誤記錄檔。
一般查詢日誌:記錄了所有與查詢語句相關的資訊,由於查詢語句使用的比較頻繁,因此,一般我們將此功能關閉。
關於一般查詢日誌的相關變數有:
log={YES|NO}
是否啟用記錄所有查詢語句的日誌資訊於一般查詢日誌(general query log)中,預設通常為OFF。MySQL 5.6已經棄用此選項
sql_log_off={ON|OFF}
用於控制是否禁止將一般查詢日誌類資訊記錄進查詢記錄檔。預設為OFF,表示不禁止記錄功能。使用者可以在會話層級修改此變數的值,但其必須具有SUPER許可權。作用範圍為全域和會話層級,屬動態變數。
慢查詢日誌:如果某個查詢的時間超過了規定的時間我們就稱它為慢查詢。這種查詢可能是因為鎖機制或者其他機制引起的。查詢的時間是以開始啟動查詢到最後結束查詢來計算時間的,而不是根據在cpu上執行的時間來計算的。
關於慢查詢日誌的相關變數有:
long_query_time=#
設定區別慢查詢與一般查詢的語句執行時間長度。這裡的語句執行時間長度為實際的執行時間,而非在CPU上的執行時間長度,因此,負載較重的伺服器上更容易產生慢查詢。其最小值為0,預設值為10,單位是秒鐘。它也支援毫秒級的解析度。作用範圍為全域或會話層級,可用於設定檔,屬動態變數。
log_slow_queries={YES|NO}
是否記錄慢查詢日誌。慢查詢是指查詢的執行時間超出long_query_time參數所設定時間長度的事件。MySQL 5.6將此參數修改為了slow_query_log。作用範圍為全域層級,可用於設定檔,屬動態變數。
slow_query_log={ON|OFF}
設定是否啟用慢查詢日誌。0或OFF表示禁用,1或ON表示啟用。日誌資訊的輸出位置取決於log_output變數的定義,如果其值為NONE,則即便slow_query_log為ON,也不會記錄任何慢查詢資訊。作用範圍為全域層級,可用於選項檔案,屬動態變數。
log_query_not_using_indexes={ON|OFF}
設定是否將沒有使用索引的查詢操作記錄到慢查詢日誌。作用範圍為全域層級,可用於設定檔,屬動態變數。
log_output={TABLE|FILE|NONE}
定義一般查詢日誌和慢查詢日誌的儲存方式,可以是TABLE、FILE、NONE,也可以是TABLE及FILE的組合(用逗號隔開),預設為TABLE。如果組合中出現了NONE,那麼其它設定都將失效,同時,無論是否啟用日誌功能,也不會記錄任何相關的日誌資訊。作用範圍為全域層級,可用於設定檔,屬動態變數。
log_query_not_using_indexes={ON|OFF}
設定是否將沒有使用索引的查詢操作記錄到慢查詢日誌。作用範圍為全域層級,可用於設定檔,屬動態變數。
slow_query_log_file=/PATH/TO/SOMEFILE
設定慢查詢記錄檔的名稱。預設為hostname-slow.log,但可以通過--slow_query_log_file選項修改。作用範圍為全域層級,可用於選項檔案,屬動態變數。
更多詳情見請繼續閱讀下一頁的精彩內容: