在mysql中,慢查詢日志記錄的是響應時間超過閾值的語句;響應時間閾值就是運行時間超過“long_query_time”的值,該值的默認值為10,也即慢查詢日志記錄運行超過十秒以上的SQL語句。慢查詢日志可將日志記錄寫入日志文件和數據庫表。
本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
mysql的慢查詢日志記錄什么
MySQL的慢查詢,全名是慢查詢日志,是MySQL提供的一種日志記錄,用來記錄在MySQL中響應時間超過閥值的語句。
具體環境中,運行時間超過long_query_time值的SQL語句,則會被記錄到慢查詢日志中。
long_query_time的默認值為10,意思是記錄運行10秒以上的語句。
默認情況下,MySQL數據庫并不啟動慢查詢日志,需要手動來設置這個參數。
當然,如果不是調優需要的話,一般不建議啟動該參數,因為開啟慢查詢日志會或多或少帶來一定的性能影響。
慢查詢日志支持將日志記錄寫入日志文件和數據庫表。
參數說明
-
slow_query_log:是否開啟慢查詢日志,1表示開啟,0表示關閉。
-
log-slow-queries :舊版(5.6以下版本)MySQL數據庫慢查詢日志存儲路徑??梢圆辉O置該參數,系統則會默認給一個缺省的文件host_name-slow.log
-
slow-query-log-file:新版(5.6及以上版本)MySQL數據庫慢查詢日志存儲路徑??梢圆辉O置該參數,系統則會默認給一個缺省的文件host_name-slow.log
-
long_query_time:慢查詢閾值,當查詢時間多于設定的閾值時,記錄日志。
-
log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日志中(可選項)。
-
log_output:日志存儲方式。log_output=’FILE’表示將日志存入文件,默認值是’FILE’。log_output=’table’表示將日志存入數據庫。
擴展知識:
1、查看慢日志功能的狀態,慢日志功能默認是關閉的show variables like ‘%slow_query_log%’;
OFF表示慢日志功能處于關閉狀態,慢日志記錄存儲在DESKTOP-2331B4V-slow.log文件中,DESKTOP為本人的計算機名。
2、開啟慢日志功能set global slow_query_log=1;
然后再查詢慢日志狀態
狀態為ON,表示慢日志功能已開啟。
3、查看默認的long_query_time時間
long_query_time為10秒,表示SQ語句超過10秒的才會被記錄到慢日志中。
4、設置long_query_time時長,默認的10秒太長set global long_query_time=3;
重新打開一個會話,如果是window系統的話,再重新打卡一個cmd就可以(注意如果還是在設置long_query_time的會話中查詢long_query_time時長的話,還是默認的10秒,所以要重啟一個會話),再次查詢long_query_time時長
推薦學習:mysql視頻教程