在mysql中,慢查詢語句指的是在慢查詢日志中響應時間超過閾值的語句,具體的運行時間超過“long_query_time”值的SQL語句;可以設置“slow_query_log”的參數來設置是否開啟慢查詢,“1”表示開啟,“0”表示關閉。
本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
mysql慢查詢語句是什么
?MySQL的慢查詢日志是MySQL提供的一種日志記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢日志中。
long_query_time的默認值為10,意思是運行10S以上的語句。
默認情況下,Mysql數據庫并不啟動慢查詢日志,需要我們手動來設置這個參數,當然,如果不是調優需要的話,一般不建議啟動該參數,因為開啟慢查詢日志會或多或少帶來一定的性能影響。慢查詢日志支持將日志記錄寫入文件,也支持將日志記錄寫入數據庫表。
MySQL 慢查詢的相關參數解釋:
-
slow_query_log:是否開啟慢查詢日志,1表示開啟,0表示關閉。
-
log-slow-queries :舊版(5.6以下版本)MySQL數據庫慢查詢日志存儲路徑。可以不設置該參數,系統則會默認給一個缺省的文件host_name-slow.log
-
slow-query-log-file:新版(5.6及以上版本)MySQL數據庫慢查詢日志存儲路徑。可以不設置該參數,系統則會默認給一個缺省的文件host_name-slow.log
-
long_query_time:慢查詢閾值,當查詢時間多于設定的閾值時,記錄日志。
-
log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日志中(可選項)。
-
log_output:日志存儲方式。log_output=’FILE’表示將日志存入文件,默認值是’FILE’。log_output=’TABLE’表示將日志存入數據庫。
slow_query_log
默認情況下slow_query_log的值為OFF,表示慢查詢日志是禁用的,可以通過設置slow_query_log的值來開啟,如下所示:
mysql>?show?variables??like?'%slow_query_log%'; ?+---------------------+-----------------------------------------------+ ?|?Variable_name???????|?Value?????????????????????????????????????????| ?+---------------------+-----------------------------------------------+ ?|?slow_query_log??????|?OFF???????????????????????????????????????????| ?|?slow_query_log_file?|?/home/WDPM/MysqlData/mysql/DB-Server-slow.log?| ?+---------------------+-----------------------------------------------+
rows in set (0.00 sec)
mysql>?set?global?slow_query_log=1; ?Query?OK,?0?rows?affected?(0.09?sec)
使用set global slow_query_log=1開啟了慢查詢日志只對當前數據庫生效,MySQL重啟后則會失效。
如果要永久生效,就必須修改配置文件my.cnf(其它系統變量也是如此)。
my.cnf要增加或修改參數slow_query_log 和slow_query_log_file,如下所示
slow_query_log?=?1 slow_query_log_file?=?/tmp/mysql_slow.log
然后重啟MySQL服務器。
slow_query_log_file
這個參數用于指定慢查詢日志的存放路徑,缺省情況是host_name-slow.log文件,
mysql>?show?variables?like?'slow_query_log_file'; ?+---------------------+-----------------------------------------------+ ?|?Variable_name???????|?Value?????????????????????????????????????????| ?+---------------------+-----------------------------------------------+ ?|?slow_query_log_file?|?/home/WDPM/MysqlData/mysql/DB-Server-slow.log?| ?+---------------------+-----------------------------------------------+ ?1?row?in?set?(0.00?sec)
推薦學習:mysql視頻教程