1. 查询一张表的所有索引
使用 SHOW INDEX 命令。
如下:
SHOW INDEX FROM your_table;
Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | I |
---|---|---|---|---|---|---|---|---|---|---|---|---|
字段 | 描述 |
Table | 表的名称。 |
Non_unique | 是否允许重复:0 表示唯一索引,1 表示非唯一索引。 |
Key_name | 索引的名称。 |
Seq_in_index | 索引中的列顺序,从 1 开始。 |
Column_name | 索引列的名称。 |
Collation | 列的排序方式(A 表示升序,NULL 表示未指定)。 |
Cardinality | 索引的基数(即索引中唯一值的估计数量,值越大查询效率越高)。 |
Sub_part | 如果是部分索引,则表示被索引的前缀长度(如 VARCHAR(10))。 |
Packed | 是否压缩索引。 |
Null | 列是否允许 NULL 值。 |
Index_type | 索引的类型(如 BTREE、FULLTEXT、HASH 等)。 |
Comment | 索引的注释。 |
Index_comment | 索引的额外注释信息。 |
2. 查询某个索引的详情
由于 MySQL 不直接提供查询单个索引的命令,你需要从 SHOW INDEX 的结果中筛选具体索引的行。只需加上where条件即可。
SHOW INDEX FROM your_table WHERE Key_name = 'idx_age';