聚簇索引和非聚簇索引的区别
区别
聚簇索引:索引和数据在同一个节点中,在叶子节点存放数据,及找到了索引就找到了数据,聚簇索引一个表只能有一个。
InnoDB选择聚簇索引规则:
1.如果存在主键,则主键为聚簇索引
2.如果不存在主键,则选择第一个唯一(unique)索引作为聚簇索引
3.如果表没有主键也没有唯一索引,则InnoDB会自动生成一个rowid的隐藏聚簇索引
非聚簇索引:索引和数据是分开的,索引的叶子节点存放的是数据的位置,在根据位置查找数据,这个过程也叫回表查询,一个表可以有多个非聚簇索引,非聚簇索引也叫二级索引。