使用SHOW INDEX可查看表的所有索引信息,包含索引名、列名、类型等;2. SHOW CREATE table显示建表语句,直观查看索引定义;3. 查询information_schema.STATISTICS适合编程获取索引详情;4. DESCRIBE仅显示主键和索引标记,适合快速浏览。

在 mysql 中查看表的索引,有几种常用方法,可以直接通过 SQL 命令查询,也可以使用客户端工具辅助查看。以下是几种最实用的方式:
1. 使用 SHOW INDEX 语句
这是最直接的方法,可以查看指定表的所有索引信息。
SHOW INDEX FROM 表名 [FROM 数据库名];
— 或者
SHOW KEYS FROM 表名 [FROM 数据库名];
示例:
SHOW INDEX FROM users FROM mydb;
如果不指定数据库名,默认使用当前选中的数据库。
返回结果包含以下关键字段:
- Table:表名
- Non_unique:是否非唯一索引(1=是,0=否)
- Key_name:索引名称(PRIMARY 表示主键)
- Seq_in_index:列在索引中的顺序
- Column_name:索引对应的列名
- Index_type:索引类型(如 BTREE、FULLTEXT、HASH 等)
2. 使用 SHOW CREATE TABLE 查看建表语句
该命令会显示创建表时的完整 SQL,包括所有索引定义。
SHOW CREATE TABLE 表名;
示例:
SHOW CREATE TABLE users;
输出中可以看到 PRIMARY KEY、UNIQUE、INDEX、KEY 等索引定义,适合快速查看结构。
3. 查询 information_schema 系统表
适用于需要编程或批量处理场景,可以灵活筛选。
select
INDEX_NAME,
COLUMN_NAME,
NON_UNIQUE,
SEQ_IN_INDEX,
INDEX_TYPE
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = ‘数据库名’
AND TABLE_NAME = ‘表名’
ORDER BY SEQ_IN_INDEX;
示例:
SELECT INDEX_NAME, COLUMN_NAME, INDEX_TYPE
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = ‘mydb’ AND TABLE_NAME = ‘users’;
这种方式便于集成到脚本或程序中。
4. 使用 DESCRIBE 快速查看(有限信息)
DESCRIBE 可以快速查看表结构,但对索引支持有限,仅能识别主键和部分索引标记。
DESCRIBE 表名;
— 或简写
DESC 表名;
输出中 Key 列会显示:
- PRI:主键
- MUL:非唯一索引(多个列可能共享)
- UNI:唯一索引
不能查看复合索引细节,适合快速浏览。
基本上就这些。日常开发中,SHOW INDEX 和 SHOW CREATE TABLE 最常用,information_schema 更适合自动化处理。根据需要选择即可。