1.開啟慢查詢的目的
開啟慢查詢日誌,可以讓MySQL記錄下查詢超過指定時間的語句,通過定位分析效能的瓶頸,才能更好的優化資料庫系統的效能。
2.設定mysql慢查詢
方法一:全域性變數設定(臨時生效)
將 slow_query_log 全域性變數設定為“ON”狀態
mysql> set global slow_query_log='ON';
設定慢查詢日誌存放的位置
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
查詢超過1秒就記錄
mysql> set global long_query_time=1;
方法二:配置檔案設定(永久生效)
修改配置檔案my.cnf,在[mysqld]下方加入:
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
重啟MySQL服務
service mysqld restart
3.檢視mysql慢查詢狀態
show variables like '%slow%'; #檢視慢查詢的開啟狀態和慢查詢日誌的儲存路徑
show variables like '%log_output%'; #檢視當前慢查詢日誌輸出的格式,可以是FILE(儲存在數資料庫的資料檔案中的hostname.log),也可以是TABLE(儲存在資料庫中的mysql.general_log)
show variables like 'long%'; #檢視慢查詢閾值,當查詢時間多於設定的閾值時,記錄日誌
select sleep(2); #插入一條資料,資料大於“long_query_time”(1秒)時(不包含1秒),會把日誌儲存到慢查詢日誌中
show global status like '%Slow_queries%'; #檢視慢查詢的個數,根據個數是否新增來判斷測試結果
4.mysql慢查詢日誌分析工具
mysqldumpslow