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';