| 指令 | 用途 | 範例 |
|---|---|---|
| SHOW DATABASES | 列出所有資料庫 | SHOW DATABASES; |
| SHOW TABLES [FROM db_name] | 列出資料庫下所有表 | SHOW TABLES FROM mydb; |
| SHOW TABLE STATUS | 顯示表狀態(引擎、行數、大小、碎片、自增值等) | SHOW TABLE STATUS FROM mydb; |
| SHOW PROCEDURE STATUS | 列出存儲過程基本資訊 | SHOW PROCEDURE STATUS WHERE Db='mydb'; |
| SHOW FULL FIELDS FROM tbl_name | 列出表完整欄位屬性(型別、預設、註解、權限等) | SHOW FULL FIELDS FROM users; |
| SHOW COLUMNS FROM tbl_name [FROM db_name] | 列出欄位名稱與基本屬性 | SHOW COLUMNS FROM users FROM mydb; |
| SHOW GRANTS FOR user_name | 顯示使用者權限(等同 GRANT 語句) | SHOW GRANTS FOR 'app'@'%'; |
| SHOW INDEX FROM tbl_name | 列出索引詳細資訊 | SHOW INDEX FROM orders; |
| SHOW STATUS [FROM db_name] | 顯示伺服器狀態變數(連線、查詢、緩存、InnoDB 指標等) | SHOW GLOBAL STATUS LIKE 'Threads%'; |
| SHOW [GLOBAL | SESSION] VARIABLES | 顯示系統變數名稱與值 | SHOW VARIABLES LIKE 'max_connections'; |
| SHOW PROCESSLIST | 顯示當前執行緒/查詢,排查鎖等待、長查詢 | SHOW FULL PROCESSLIST; |
| SHOW OPEN TABLES | 顯示目前開啟的表清單 | SHOW OPEN TABLES FROM mydb; |
| SHOW PRIVILEGES | 顯示伺服器支援的權限清單 | SHOW PRIVILEGES; |
| SHOW CREATE DATABASE db_name | 顯示建庫語句 | SHOW CREATE DATABASE mydb; |
| SHOW CREATE TABLE tbl_name | 顯示建表語句(含引擎、字元集、分區等) | SHOW CREATE TABLE orders; |
| SHOW ENGINES | 顯示支援的儲存引擎與預設引擎 | SHOW ENGINES; |
| SHOW ENGINE INNODB STATUS | 顯示 InnoDB 內部狀態(鎖、事務、緩衝池、死鎖等) | SHOW ENGINE INNODB STATUS\G |
| SHOW WARNINGS | 顯示上一條語句產生的警告、錯誤、通知 | SHOW WARNINGS; |
| SHOW ERRORS | 僅顯示上一條語句的錯誤 | SHOW ERRORS; |
| SHOW [STORAGE] ENGINES | 同 SHOW ENGINES | SHOW STORAGE ENGINES; |
僅顯示資料庫/表/欄位層級資訊,適合腳本自動化。
# 列出所有資料庫
mysqlshow -uroot -p
# 列出指定資料庫所有表
mysqlshow -uroot -p mydb
# 列出指定表欄位
mysqlshow -uroot -p mydb users
# 列出指定欄位詳細資訊
mysqlshow -uroot -p mydb users id
# 找出所有無主鍵表
SELECT TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_SCHEMA='mydb' AND TABLE_TYPE='BASE TABLE'
AND TABLE_NAME NOT IN (
SELECT TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE='PRIMARY KEY' AND TABLE_SCHEMA='mydb'
);
# 找出最大的 10 張表
SELECT TABLE_NAME, ROUND((DATA_LENGTH+INDEX_LENGTH)/1024/1024,2) AS size_mb
FROM information_schema.TABLES
WHERE TABLE_SCHEMA='mydb'
ORDER BY size_mb DESC LIMIT 10;
SHOW PROCESSLIST:普通使用者僅見自己執行緒,需 PROCESS 權限才能看全部(含密碼)。information_schema 視圖需對應物件的 SELECT 權限才可查詢。