聚簇索引和非聚簇索引
聚簇索引(聚集索引)
将数据的存储和索引放在一块,索引结构的叶子节点保存了行数据
索引字段必须存在,且只能存在一个
非聚集索引(二级索引)
将数据和索引分开存储,索引结构的叶子节点关联的是对应的主键
索引字段可以存在多个
索引的选取规则
如果存在主键:主键索引即为聚集索引
如果不存在主键:会使用第一个唯一(UNIQUE)索引作为聚集索引
如果表没有主键,或者没有合适的唯一索引
innoDB就会自动生成一个rowid作为隐藏的聚集索引
id作为聚集索引
每个id对应的叶子节点包含了整行的数据
name作为二级索引
每个二级索引对应的叶子节点里包含的是其主键值
回表查询
先通过二级索引拿到主键值
再通过主键值回表查询到数据