一.簡介
MySQL的慢查詢,全名是慢查詢?nèi)罩?,是MySQL提供的一種日志記錄,用來記錄在MySQL中響應(yīng)時(shí)間超過閥值的語句。
具體環(huán)境中,運(yùn)行時(shí)間超過long_query_time值的SQL語句,則會被記錄到慢查詢?nèi)罩局?。long_query_time的默認(rèn)值為10,意思是記錄運(yùn)行10秒以上的語句。
默認(rèn)情況下,MySQL數(shù)據(jù)庫并不啟動慢查詢?nèi)罩荆枰謩觼碓O(shè)置這個(gè)參數(shù)。當(dāng)然,如果不是調(diào)優(yōu)需要的話,一般不建議啟動該參數(shù),因?yàn)殚_啟慢查詢?nèi)罩緯蚨嗷蛏賻硪欢ǖ男阅苡绊憽?/p>
慢查詢?nèi)罩局С謱⑷罩居涗泴懭胛募蛿?shù)據(jù)庫表。
二.查詢
slow_query_log 慢查詢開啟狀態(tài)
slow_query_log_file 慢查詢?nèi)罩敬娣诺奈恢茫ㄟ@個(gè)目錄需要MySQL的運(yùn)行帳號的可寫權(quán)限,一般設(shè)置為MySQL的數(shù)據(jù)存放目錄)
long_query_time 查詢超過多少秒才記錄
查看是否開啟和存放位置,當(dāng)前為關(guān)閉狀態(tài)
show variables like 'slow_query%';
多少米才記錄,當(dāng)前10秒
show variables like 'long_query_time';
三.開啟
永久配置
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ù)庫
臨時(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ù)庫
四.測試
放一個(gè)慢查詢語句
mysql> select sleep(2);
查看日志是否生成并有那個(gè)語句
cat /usr/local/mysql/data/slow.log
本文摘自 :https://www.cnblogs.com/