檢視慢查詢狀态
show variables like 'slow_query%'
主要變量:
slow_query_log:表示是否開啟;
slow_query_log_file:表示儲存慢查詢資訊的檔案;
開啟慢查詢
set global slow_query_log = on
或直接在配置檔案中開啟:
slow-query-log=on
設定慢查詢存儲檔案
set global slow_query_log_file = '/var/lib/mysql/mysql_slow_query.log'
或直接在配置檔案中:
slow_query_log_file="/var/lib/mysql/mysql_slow_query.log"
另外:
沒有命中索引的情況是否記錄到慢查詢檔案:
set global log_queries_not_using_indexes = on
查詢時間超過多長時間會進入慢查詢日志:
set global long_query_time = 0.01 (機關秒)
日志分析

Time :日志記錄的時間
User@Host:執行的使用者及主機
Query_time:查詢耗費時間
Lock_time 鎖表時間
Rows_sent 發送給請求方的記錄條數
Rows_examined 語句掃描的記錄條數
SET timestamp 語句執行的時間點
select .... 執行的具體sql語句
慢查詢日志分析工具
一般情況下直接vim或以文本工具打開日志檔案即可。mysql還提供了mysqldumpslow指令可以按條件篩選等。
-s表示排序依據,al表示按鎖表時間,ar表示按照發送條數,at表示按照查詢時間,相當于order by;
-t 顯示幾條記錄,相當于limit。
例如:mysqldumpslow -t 10 -s at /var/lib/mysql/mysql_slow_query.log