如何進行 MySQL慢查詢 操作
阿新 • • 發佈:2020-12-05
慢查詢日誌會把查詢耗時超過規定時間的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;