本文為 Innotop 進階篇,補充配置文件、過濾器、自定義報警、與 pt-query-digest 聯動分析慢查詢的完整鏈路。
~/.innotop/innotop.conf[default]
user = root
password = xxx
host = localhost
delay = 3
mode = Q
color = 1
# 過濾掉 Sleep 線程
filter = Command != Sleep
# 高亮長查詢
highlight = Time > 10
啟動自動讀取配置,無需每次輸入參數。
k Kill 選中查詢,e EXPLAIN,f 過濾,o 排序切換。LOCK TABLE、MDL 鎖(DDL 阻塞 DML)。slow_query_log_file,按 long_query_time 過濾。d 切換顯示完整 SQL、執行時間、掃描行數、索引使用情況。grep -A 20 'Query_time: 10' /var/lib/mysql/mysql-slow.log > slow_sample.log。pt-query-digest slow_sample.log 生成聚合報告:按總耗時/平均耗時/頻率排序,給出 EXPLAIN 建議。innotop --count 1 --mode T 解析輸出,發現長事務/大量鎖等待發送告警。mysql_innotop_long_trx_count、mysql_innotop_lock_waiters 指標。DBD::mysql 編譯正確、mysql.sock 路徑一致(或用 -h 127.0.0.1 強制 TCP)。utf8mb4。PROCESS、REPLICATION CLIENT、SUPER 權限才能查看所有線程/變量/殺查詢。Innotop 是 DBA 「隨身聽診器」:秒級發現異常查詢、長事務、鎖爭用、主從延遲。配合 pt-query-digest 做深度分析,構建「發現->分析->優化->驗證」閉環,是 MySQL 性能治理的核心工具鏈。