mysql> SHOW GLOBAL STATUS LIKE 'sort%';
+-------------------+------------+
| Variable_name | Value |
+-------------------+------------+
| Sort_merge_passes | 29 |
| Sort_range | 37432840 |
| Sort_rows | 9178691532 |
| Sort_scan | 1860569 |
+-------------------+------------+
| 參數 | 建議 | 風險 |
|---|---|---|
sort_buffer_size | 適度調大(如 2M→4M→8M),觀察 Sort_merge_passes 下降 | 過大導致連線記憶體暴增,OOM 風險 |
read_rnd_buffer_size | 配合調大,加速歸併排序讀取 | 同樣佔用連線記憶體 |
| 索引優化 | 為 ORDER BY 欄位建立索引,避免 Sort_scan | 無風險,收益最大 |
| 避免 SELECT * | 只取需要欄位,減少排序行寬度 | 無風險 |
將 `Sort_merge_passes / Uptime` 納入監控告警,持續上升時觸發排查(可能是新上線慢查詢、參數誤調、資料量暴增)。