在InnoDB存储引擎中,根据索引的存储形式,可以分为以下两种:
分类 | 含义 | 特点 |
聚集索引(Clustered Index) | 将数据存储与索引放到一起,索引结构的叶子节点存储行记录 | 必须有,且只能有一个 |
二级索引(Secondary Index) | 将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键值 | 可以存在多个 |
聚集索引选取规则:
- 存在主键,主键索引即为聚集索引;
- 不存在主键,使用第一个NOT NULL UNIQUE索引作为聚集索引;
- 否则,InnoDB会自动生成一个rowid作为隐藏的聚集索引。
回表查询:先通过二级索引(普通索引)定位到主键值,再通过聚集索引定位到行记录。