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