日常運維與開發中,MySQL 庫表元數據查詢是高頻操作。本文彙總最常用的 6 條核心命令,涵蓋庫列表、表列表、結構描述、索引信息,適合打印張貼或收藏備查。
| 命令 | 作用 | 示例輸出關鍵列 |
|---|---|---|
SELECT DATABASE(); | 顯示當前會話默認數據庫(未選庫則 NULL) | DATABASE() |
SHOW DATABASES; | 列出服務器所有數據庫 | Database |
USE db_name; | 切換默認數據庫 | — |
SHOW TABLES; | 列出當前庫所有表 | Tables_in_db |
DESCRIBE tbl_name;DESC tbl_name;SHOW COLUMNS FROM tbl_name; | 顯示表結構:欄位、類型、是否 NULL、鍵、默認值、Extra | Field, Type, Null, Key, Default, Extra |
SHOW INDEX FROM tbl_name;SHOW KEYS FROM tbl_name; | 顯示索引詳情:名稱、唯一性、列、基數、類型 | Table, Non_unique, Key_name, Seq_in_index, Column_name, Cardinality, Index_type |
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']; — 表級統計:引擎、行數、數據長度、索引長度、自增值、創建時間、校驗和SHOW CREATE TABLE tbl_name; — 完整建表 DDL,含引擎、字符集、分區、外鍵SHOW CREATE DATABASE db_name; — 庫級 DDL,含字符集、校對規則INFORMATION_SCHEMA 系統視圖:TABLES、COLUMNS、STATISTICS、TABLE_CONSTRAINTS 等,支持任意 SQL 查詢組合-- 查找所有無主鍵的表
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema','sys')
AND TABLE_NAME NOT IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE='PRIMARY KEY');
-- 查找大表(數據+索引 > 1GB)
SELECT TABLE_SCHEMA, TABLE_NAME,
ROUND((DATA_LENGTH+INDEX_LENGTH)/1024/1024/1024,2) AS size_gb
FROM INFORMATION_SCHEMA.TABLES
WHERE (DATA_LENGTH+INDEX_LENGTH) > 1024*1024*1024
ORDER BY size_gb DESC;
熟練掌握這幾條命令,能覆蓋 90% 的庫表元數據查詢需求,顯著提升排查效率。