一.簡(jiǎn)介
MySQL的慢查詢,全名是慢查詢?nèi)罩荆荕ySQL提供的一種日志記錄,用來(lái)記錄在MySQL中響應(yīng)時(shí)間超過(guò)閥值的語(yǔ)句。
具體環(huán)境中,運(yùn)行時(shí)間超過(guò)long_query_time值的SQL語(yǔ)句,則會(huì)被記錄到慢查詢?nèi)罩局小ong_query_time的默認(rèn)值為10,意思是記錄運(yùn)行10秒以上的語(yǔ)句。
默認(rèn)情況下,MySQL數(shù)據(jù)庫(kù)并不啟動(dòng)慢查詢?nèi)罩?,需要手?dòng)來(lái)設(shè)置這個(gè)參數(shù)。當(dāng)然,如果不是調(diào)優(yōu)需要的話,一般不建議啟動(dòng)該參數(shù),因?yàn)殚_(kāi)啟慢查詢?nèi)罩緯?huì)或多或少帶來(lái)一定的性能影響。
慢查詢?nèi)罩局С謱⑷罩居涗泴?xiě)入文件和數(shù)據(jù)庫(kù)表。
二.查詢
slow_query_log 慢查詢開(kāi)啟狀態(tài)
slow_query_log_file 慢查詢?nèi)罩敬娣诺奈恢茫ㄟ@個(gè)目錄需要MySQL的運(yùn)行帳號(hào)的可寫(xiě)權(quán)限,一般設(shè)置為MySQL的數(shù)據(jù)存放目錄)
long_query_time 查詢超過(guò)多少秒才記錄
查看是否開(kāi)啟和存放位置,當(dāng)前為關(guān)閉狀態(tài)
show variables like 'slow_query%';
多少米才記錄,當(dāng)前10秒
show variables like 'long_query_time';
三.開(kāi)啟
永久配置
vim /etc/my.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 2
重啟數(shù)據(jù)庫(kù)
臨時(shí)配置
mysql> set global slow_query_log='ON';
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
mysql> set global long_query_time=1;
重啟數(shù)據(jù)庫(kù)
四.測(cè)試
放一個(gè)慢查詢語(yǔ)句
mysql> select sleep(2);
查看日志是否生成并有那個(gè)語(yǔ)句
cat /usr/local/mysql/data/slow.log
本文摘自 :https://www.cnblogs.com/