索引字段示例
这里是 mysql 索引的示例解读
索引字段示例解读
show index from xxx; 解读
| 字段名 | 含义解读 |
|---|---|
| Table | 索引所属的表名。 |
| Non_unique | 索引是否允许重复值: - 0:表示唯一索引(不允许重复值,如 PRIMARY KEY、UNIQUE) - 1:表示非唯一索引(允许重复值) |
| Key_name | 索引的名称。主键索引固定为PRIMARY;用户创建的索引则是定义时指定的名称。 |
| Seq_in_index | 列在索引中的位置(从 1 开始)。 例如:复合索引(col1, col2)中,col1 的该值为 1,col2 为 2。 |
| Column_name | 索引包含的列名。若为函数索引(基于表达式的索引),该字段可能为NULL(表达式会显示在 Expression 字段)。 |
| Collation | 索引中列的排序方式: - A:升序排列(最常见) - D:降序排列 - NULL:无排序(如空间索引) |
| Cardinality | 索引中唯一值的估计数量(非精确值)。 值越接近表的总行数,说明索引选择性越好(查询时过滤效果越强),查询优化器更可能使用该索引。 |
| Sub_part | 索引前缀长度(仅对字符串列有效)。 例如:若对varchar(100)列只索引前 10 个字符,该值为 10;若索引整个列,该值为 NULL。 |
| Packed | 索引是否压缩存储: NULL:未压缩 - 其他值:表示压缩方式(如PACK_KEYS=1时的压缩格式)。 |
| Null | 该列是否允许 NULL 值: x- YES:允许 - 空:不允许(如主键列)。 |
| Index_type | 索引的类型。常见类型: - BTREE:默认索引类型,适用于大多数场景 - HASH:哈希索引(仅 Memory 引擎支持) - FULLTEXT:全文索引 - SPATIAL:空间索引。 |
| Comment | 索引的额外注释(较少使用)。 |
| Index_comment | 创建索引时通过COMMENT子句指定的注释(用户自定义说明)。 |
| Visible | 索引是否对查询优化器 “可见”: - YES:优化器可以使用该索引 - NO:优化器会忽略该索引(但索引仍存在,可通过ALTER TABLE ... ALTER INDEX ... VISIBLE修改)。 |
| Expression | 若为函数索引(基于表达式创建的索引,如INDEX idx (col1 + col2)),则显示索引对应的表达式;普通列索引则为 NULL。 |