1. 程式人生 > 資料庫 >如何進行 MySQL慢查詢 操作

如何進行 MySQL慢查詢 操作

慢查詢日誌會把查詢耗時超過規定時間的SQL語句記錄下來,利用慢查詢日誌,定位分析效能的瓶頸。

slow_query_log 可以設定慢查詢日誌的開閉狀態

long_query_time 可以規定查詢超時的時間,單位是秒

# 檢視慢查詢相關配置
SHOW VARIABLES like 'slow_query%';

# 配置
slow_query_log = ON
long_query_time = 1


set global slow_query_log =[on/off]
# 最好能與 data分開 
set global slow_query_log_file = /aaa/aaa.log
set global long_query_time = xx.xxx 秒
# 記錄未使用索引的SQL
set global long_queries_not_using_indexes = [on|off] 

工具

mysqldumpslow [OPTS....] [LOGS...]

mysqldumpslow -s r -t 10 slow-mysql.log

-s 排序 (c總次數,t總時間,l鎖的世界,r總行數,at,al,ar) a`x`是平均 例at= 總時間/總次數

-t top 指定取前幾條

pt-query-digest [OPTIONS] [FILES] [DSN]

pt-query-digest --explain h=127.0.0.1,u=root,p=password slow-mysql.sql > slow.rep
--explain 帶有解釋
> 輸出到指定檔案

實時監控

select id,`user`,`host` ,`DB`,`command`,time,state,info
->FROM information_schema.PROCESSLIST
-> WHERE TIME >=10;