MySQL SHOW 命令大全:狀態、變量、進程、InnoDB 監控
SHOW 系列命令是 DBA 日常巡檢、故障定位的「聽診器」,能即時查看服務器運行狀態、配置變量、併發線程、InnoDB 內部指標等。本文匯總高頻用法與關鍵指標解讀。
核心 SHOW 命令速查表
| 命令 | 用途 | 典型篩選範例 |
SHOW STATUS | 服務器狀態計數器 (全局/會話) | SHOW GLOBAL STATUS LIKE 'Threads_%';
SHOW STATUS LIKE 'Handler_read%'; |
SHOW VARIABLES | 系統配置變量 (全局/會話) | SHOW VARIABLES LIKE 'innodb_%';
SHOW SESSION VARIABLES LIKE 'sort_buffer_size'; |
SHOW ENGINE INNODB STATUS | InnoDB 內部狀態 (鎖、事務、Buffer Pool、Purge 等) | 無篩選,輸出極長,建議 \G 垂直顯示 |
SHOW PROCESSLIST | 當前線程列表 (SQL、狀態、鎖、時間) | SHOW FULL PROCESSLIST; (不截斷 SQL) |
SHOW OPEN TABLES | 打開表緩存狀態 | SHOW OPEN TABLES WHERE In_use > 0; |
SHOW TABLE STATUS | 表統計信息 (行數、大小、引擎、自增值) | SHOW TABLE STATUS LIKE 'order%'; |
SHOW INDEX FROM tbl | 索引詳情 (基數、選擇性) | 判斷索引是否失效、是否需重建 |
SHOW WARNINGS/ERRORS | 最近語句的警告/錯誤 | 緊跟執行語句後查看 |
SHOW GRANTS FOR user | 用戶權限 | 審計權限配置 |
SHOW MASTER STATUS | 主庫 Binlog 位置 | 搭建複製必看 |
SHOW SLAVE STATUS | 從庫複製狀態 | \G 觀察 Seconds_Behind_Master |
關鍵狀態指標解讀 (SHOW GLOBAL STATUS)
| 指標 | 含義 | 健康閾值/建議 |
| Threads_connected | 當前連接數 | 接近 max_connections 80% 須擴容或限流 |
| Threads_running | 活躍查詢線程數 | 持續 > CPU 核心數 可能擁塞 |
| Aborted_connects | 嘗試連接失敗次數 | 持續增長檢查網絡/防火牆/認證 |
| Connections | 歷史總連接數 | 配合 Uptime 算 QPS |
| Questions / Queries | 執行語句數 / 含存儲過程 | QPS = Questions / Uptime |
| Slow_queries | 慢查詢計數 | > 0 需分析慢日誌 |
| Innodb_buffer_pool_read_requests | Buffer Pool 邏輯讀請求 | 命中率 = 1 - (reads/requests) 應 > 99% |
| Innodb_buffer_pool_reads | 物理磁盤讀次數 | 同上 |
| Innodb_row_lock_waits | 行鎖等待次數 | 高則檢查熱點行、長事務 |
| Innodb_row_lock_time_avg | 平均鎖等待時間 (ms) | > 10ms 需優化 |
| Handler_read_rnd_next | 全表掃描次數 | 高則缺索引或索引失效 |
| Handler_read_key | 索引讀取次數 | 越高越好 |
| Created_tmp_tables / Created_tmp_disk_tables | 內存/磁盤臨時表數 | 磁盤臨時表比例 > 10% 擴大 tmp_table_size |
| Select_full_join | 無索引 JOIN 次數 | > 0 需加索引 |
| Sort_merge_passes | 排序溢寫磁盤次數 | > 0 擴大 sort_buffer_size |
命令行工具等價調用
# 顯示變量
mysqladmin variables -u root -p
# 顯示擴展狀態
mysqladmin extended-status -u root -p
# 幫助與詳細編譯參數
mysqld --verbose --help | more
實戰巡檢腳本思路
- 每分鐘采集
SHOW GLOBAL STATUS 關鍵指標 → 時序庫 (Prometheus/InfluxDB) → Grafana 告警。
- 慢查詢告警觸發 → 自動
EXPLAIN + SHOW CREATE TABLE + SHOW INDEX 入庫供人工複盤。
- 複製延遲
Seconds_Behind_Master > 300 秒 → 告警 + 自動切換只讀流量。
SHOW 命令是「瞬間快照」,持續觀測需配合監控系統采集時序數據。切記:SHOW ENGINE INNODB STATUS 輸出極大,腳本解析時需限制長度或僅抽取關鍵段 (SEMAPHORES、TRANSACTIONS、FILE I/O、BUFFER POOL AND MEMORY)。