聚簇索引也叫聚集索引,非聚簇索引也叫二级索引。
聚集索引:将数据存储和索引放到一块,索引结构的叶子节点保存了行数据。(必须有而且只有一个)
二级索引:将数据和索引分开,索引结构的叶子节点关联的是对应的主键。(可以存在多个)
聚集索引选取的规则:
-
-
- 如果存在主键,主键索引就是聚集索引
- 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。
- 如果表没有主键,或者没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引。
-
回表:先到二级索引中找到主键值,再拿着主键值到聚集索引中找到行数据。