一.在mysql中,慢查詢日誌對於管理員有重要作用能幫助dba快速定位捕獲查詢較慢或sql中沒有使用索引的語句,便於對程式sql語句進行優化,排查問題等。
1.慢查詢日誌相關重要引數:
slow_query_log ##是否開啟慢查詢日誌
slow_query_log_file ##慢查詢日誌檔名及路徑
long_query_time ###指定慢查詢時間閾(yu)值,sql執行時間大於該閾值(不包括該值本身,如在sql執行中花費的時間等於,下面的2秒時,不會被記錄)將被記錄下來,生產環境中1~2秒範圍均可
log_queries_not_using_indexes ###將沒有使用索引的語句記錄至慢查詢日誌中,
log_throttle_queries_not_using_indexes ##限制每分鐘內,在慢查詢日誌中,去記錄沒有使用索引的sql語句的次數,因為沒有使用索引的sql可能會短時間重複執行,為了避免日誌快速增大,限制每分鐘的記錄次數
min_examined_row_limit ###掃瞄全表少於該值的記錄將不會被記錄至慢查詢日誌,結合去記錄沒有使用索引的sql語句的例子,有可能存在某乙個表,資料量維持在百行左右,且沒有建立索引。這種表即使不建立索引,查詢也很快,掃瞄記錄很小,如果確定有這種表,則可以通過此引數設定,將這個sql不記錄到慢查詢日誌。
log_slow_admin_statements##記錄超時的管理操作sql到慢查詢日誌中,如alter,analyze table等
log_output ###慢查詢日誌格式,預設為file記錄到檔案系統檔案上,改為table將記錄在mysql.slow_log表中。 型別為file可以通過mysql命令mysqldumpslow 命令統計檢視。存在mysql.slow_log表中可以方便統計查詢,但是在存在較多慢查詢sql時,該錶可能增長的過大,備份過程中不要備份該錶。
log_timestamps##寫入時區資訊。可根據需求記錄utc時間或者伺服器本地系統時間
以上引數建議寫在/etc/my.cnf配置檔案中,每次啟動mysql例項均生效,定期檢視慢查詢日誌或mysql.slow_log表,優化這些sql語句。可以結合這條語句,找到資料庫中哪些表尚未建立主鍵索引的表進行優化。
select
table_schema,
table_name from information_schema.tables
where
table_name not in (
select distinct
table_name from information_schema.columns where column_key = 'pri'
)
and table_schema not in (
'mysql',
'information_schema','performance_schema','sys')
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...
mysql 慢日誌 MYSQL慢查詢和日誌
一 簡介 開啟慢查詢日誌,可以讓mysql記錄下查詢超過指定時間的語句,通過定位分析效能的瓶頸,才能更好的優化資料庫系統的效能。二 引數說明 slow query log 慢查詢開啟狀態 slow query log file 慢查詢日誌存放的位置 這個目錄需要mysql的執行帳號的可寫許可權,一般...