mysql慢查詢日誌引數配置及使用實踐

2021-09-19 20:13:35 字數 1987 閱讀 9302

一.在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的執行帳號的可寫許可權,一般...