LIMIT 返回海量結果集,佔滿網路/記憶體。filesort/臨時表溢寫磁碟 (I/O 飆升)。max_connections 耗盡)。| 手段 | 盲區 |
|---|---|
| Zabbix/Prometheus 抓取狀態變量 | 非實例內部視角,指標延遲、顆粒度粗 |
| 每周效能報表 (iostat/vmstat/datasize) | 周級頻次,無法捕捉突發抖動 |
| mysqldumpslow 分析 Slow Log Top 10 | 慢查詢爆發時 Top 10 失去代表性;定時任務雜訊干擾 |
long_query_time=1 + slow_query_log=ON,毫秒級寫入。SHOW FULL PROCESSLIST 落盤,事後複盤利器。mysqlbinlog 快速鎖定資料不一致窗口。-- 動態調整
SET GLOBAL long_query_time = 1;
SET GLOBAL slow_query_log = ON;
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
-- my.cnf 固化
[mysqld]
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
# 按返回行數排序 Top 10
mysqldumpslow -s r -t 10 /var/log/mysql/slow.log
# 按耗時排序含 LEFT JOIN 的 Top 10
mysqldumpslow -s t -t 10 -g "left join" /var/log/mysql/slow.log
# 參數說明
-s c/t/l/r : 次數/時間/查詢時間/返回行數 排序
-t N : Top N
-g "regex" : 正則過濾 (不區分大小寫)
| 變量 | 含義 |
|---|---|
| Qcache_hits | 命中次數 |
| Qcache_inserts | 新增入緩存次數 |
| Qcache_lowmem_prunes | 因記憶體不足被剔除次數 |
| Qcache_free_memory | 剩餘可用記憶體 |
| Qcache_free_blocks / Qcache_total_blocks | 碎片化程度參考 |
建議:Qcache_lowmem_prunes 持續增長 → 擴大 query_cache_size 或關閉 QC (高併發寫入場景 QC 往往成瓶頸)。
EXPLAIN + SHOW CREATE TABLE + SHOW INDEX 判斷缺索引/錯誤駕駛。pt-query-digest 對比。拋棄「事後諸葛亮」式周報,擁抱「節點內核級即時觀測 + 智能降噪 + 自動現場保存」。慢查詢治理不是一次性專案,而是持續運行的基礎設施能力。