MySQL 慢查詢日誌

2021-08-14 11:04:54 字數 1823 閱讀 9309

mysql慢查詢日誌用於記錄在mysql中響應時間超過設定值long_query_time值的sql,會被記錄在慢查詢日誌中。預設情況下mysql是不開啟慢查詢的,因為開啟慢查詢肯定會帶來效能的影響,關於如何讓開啟慢查詢日誌請往下看。

我們不可能做到對所有的sql都使用explain語句來分析sql的執**況,使用慢查詢日誌則可以更方便我們對mysql進行調優。

mysql啟動慢查詢的引數:

slow_query_log    :是否開啟慢查詢日誌,1表示開啟,0表示關閉。

slow-query-log-file:慢查詢日誌儲存路徑。可以不設定該引數,系統則會預設給乙個預設的檔案host_name-slow.log

long_query_time :慢查詢閾值,當查詢時間多於設定的閾值時就記錄日誌。

log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日誌中。

log_output:日誌儲存方式。'file'表示將日誌存入檔案。'table'表示將日誌存入資料庫mysql.slow_log表中。也可以同時指定兩種儲存方式。

設定慢查詢相關引數

set global slow_query_log_file=/sql_log/slow_log.log

set global log_queries_not_using_indexes=on

set global long_query_time=0.001

set global slow_query_log=on

慢查詢日誌的部分內容如下:

time:執行查詢的時間。

user:查詢的使用者和ip。

id:程序id。

query_time:查詢所執行的時間,查詢實際上在mysql上所執行的時間。

lock_time:查詢對這個記錄鎖定的時間

rows_sent:查詢的行數

rows_examined:查詢這個記錄所讀取的行數  沒有正確使用索引

永久配置:

上面的方式是臨時設定,如果我們重啟mysql的話將會失效。可以通過對my.cnf的 配置實現進行慢查詢永久設定。

修改完成後,重啟mysql

可以通過下面的命令檢視是否開啟慢查詢日誌

show variables like 'slow_query%';

show variables like '

long_query_time%';

當很短時間產生大量日誌,重複sql。如果我們要手工分析日誌,查詢sql顯然是很不方便的,mysql提供了日誌分析工具mysqldumpslow.

mysqldumpslow的幫助資訊如下

下面來看乙個分析的例項:

count:查詢出現的次數

time:執行最長的時間

lock:等待鎖的時間

rows:查詢的行數

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