SHOW STATUS 回傳上百個伺服器狀態變數,本文整理完整列表並標註**核心監控指標**,適合 DBA 建立監控儀表板、效能基準線、異常告警閾值。
連線與執行緒
| 變數 | 含義 | 告警建議 |
| Connections | 嘗試連線總數 (含失敗) | 突增 → 連線風暴/應用洩漏 |
| Max_used_connections | 歷史峰值同時連線 | 接近 max_connections 80% 擴容 |
| Threads_connected | 目前開啟連線數 | 持續高位 → 連線池洩漏 |
| Threads_running | 正在執行查詢的執行緒 | > CPU 核心數 → 積壓 |
| Aborted_connects | 失敗連線嘗試 | > 0 即關注,網路/認證問題 |
| Aborted_clients | 異常中斷的客戶端 | 同上 |
查詢統計 (Com_*)
| 變數 | 含義 |
| Com_select | SELECT 執行次數 |
| Com_insert / _update / _delete | 寫入操作次數 |
| Com_commit / _rollback | 事務提交/回滾 |
| Com_prepare_sql / _stmt_execute | Prepared Statement 使用 |
| Qcache_hits / _inserts / _lowmem_prunes | 查詢快取命中/插入/淘汰 (5.7 已移除) |
InnoDB 核心指標 (重點監控)
| 變數 | 含義 | 健康基準 |
| Innodb_buffer_pool_pages_data | 含資料的頁數 | 佔總頁數 > 90% 佳 |
| Innodb_buffer_pool_pages_free | 空閒頁數 | 過低 → 擴大 buffer_pool |
| Innodb_buffer_pool_read_requests | 邏輯讀請求 | 基準值 |
| Innodb_buffer_pool_reads | 物理讀 (未命中) | / read_requests < 1% |
| Innodb_buffer_pool_wait_free | 等待空閒頁次數 | > 0 即壓力大 |
| Innodb_log_waits | 等待記錄檔刷新 | > 0 → 擴大 log_file_size |
| Innodb_row_lock_waits | 列鎖等待次數 | 高 → 熱點行/長事務 |
| Innodb_deadlocks | 死鎖次數 | > 0 需檢查應用邏輯 |
IO 與臨時表
| 變數 | 含義 | 異常判讀 |
| Created_tmp_tables | 記憶體臨時表數 | 正常 |
| Created_tmp_disk_tables | 磁碟臨時表數 | / tmp_tables > 10% → 調大 tmp_table_size |
| Handler_read_rnd_next | 全表掃描次數 | 高 → 缺索引/查詢優化 |
| Sort_merge_passes | 排序溢寫磁碟次數 | > 0 → 調大 sort_buffer_size |
實用監控查詢
-- 即時 QPS/TPS
SELECT
VARIABLE_VALUE INTO @q1 FROM GLOBAL_STATUS WHERE VARIABLE_NAME='Questions';
SELECT SLEEP(1);
SELECT
VARIABLE_VALUE INTO @q2 FROM GLOBAL_STATUS WHERE VARIABLE_NAME='Questions';
SELECT (@q2 - @q1) AS QPS;
-- 緩衝池命中率
SELECT
(1 - Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests) * 100 AS hit_rate_pct
FROM information_schema.GLOBAL_STATUS;
完整變數清單請參考官方文件,本文列出 200+ 變數中的核心 50+,建議納入 Prometheus/Grafana/Zabbix 監控體系。