SHOW 系列命令是 MySQL 觀測系統狀態、元資料與運行指標的核心入口。本文分類彙整 20+ 常用 SHOW 命令語法、輸出說明與實戰用法。
一、元資料類
| 命令 | 說明 | 範例 |
SHOW DATABASES; | 列出所有資料庫 | - |
SHOW TABLES [FROM db_name]; | 列出當前/指定庫所有表 | SHOW TABLES FROM mysql; |
SHOW COLUMNS FROM tbl [FROM db]; | 顯示表欄位定義 (同 DESC tbl) | SHOW COLUMNS FROM user FROM mysql; |
SHOW CREATE DATABASE db; | 顯示建庫 DDL | - |
SHOW CREATE TABLE tbl; | 顯示建表 DDL (含引擎、字符集、分區) | - |
SHOW TABLE STATUS [FROM db]; | 表詳細狀態:引擎、行數、大小、更新時間、自增值、註釋 | - |
SHOW INDEX FROM tbl; | 顯示索引詳情:欄位、類型、基數、前綴長度 | - |
二、運行狀態類
| 命令 | 說明 | 關鍵指標 |
SHOW PROCESSLIST; | 當前所有線程:Id、User、Host、db、Command、Time、State、Info | Time 長、State=Locked、Command=Query 檢查慢查詢/鎖等待 |
SHOW STATUS; | 全域/會話狀態變數 (150+) | Threads_connected, Questions, Uptime, Slow_queries, Innodb_buffer_pool_reads |
SHOW VARIABLES; | 系統配置參數 (300+) | 配合 LIKE 'pattern' 篩選,如 %buffer% |
SHOW ENGINES; | 支援儲存引擎、預設引擎、是否支援事務/XA/備份 | InnoDB Support=YES/DEFAULT |
SHOW INNODB STATUS; | InnoDB 內部狀態:事務、鎖、緩衝池、日誌、表空間 | 死鎖分析、鎖等待、脏頁比例 |
SHOW LOGS; | BDB 引擎日誌狀態 (已淘汰) | - |
三、權限與安全類
| 命令 | 說明 |
SHOW GRANTS FOR user@host; | 顯示用戶權限 (等效 GRANT 語句) |
SHOW PRIVILEGES; | 列出伺服器支援所有權限項目 |
四、診斷與錯誤類
| 命令 | 說明 |
SHOW WARNINGS; | 上一條語句產生的警告、錯誤、通知 (含代碼、訊息) |
SHOW ERRORS; | 僅顯示上一條語句的錯誤 |
五、進階篩選技巧
六、資訊_schema 對應表
所有 SHOW 元資料命令對應 INFORMATION_SCHEMA 系統表,可用 SQL 彈性查詢:
SCHEMATA ↔ SHOW DATABASES
TABLES ↔ SHOW TABLES / TABLE STATUS
COLUMNS ↔ SHOW COLUMNS
STATISTICS ↔ SHOW INDEX
PROCESSLIST ↔ SHOW PROCESSLIST
GLOBAL_STATUS / SESSION_STATUS ↔ SHOW STATUS
GLOBAL_VARIABLES / SESSION_VARIABLES ↔ SHOW VARIABLES
善用 SHOW 系列與 INFORMATION_SCHEMA,構建自動化巡檢與監控腳本的數據來源。