一、索引按照物理实现方式,分为聚簇索引和非聚簇索引。非聚簇索引称为二级索引和辅助索引。
二、聚簇索引(一行的所有字段的数据都存储叫做聚簇)
聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(所有记录都存储在叶子节点中),也就是所谓的索引即数据,数据即索引。通常,表的主键会自动创建为聚簇索引。没有主键,innodb会隐式的创建一个列为主键。
如主键为ID的表数据,看到的表中的数据的存储方式就是聚簇索引。聚簇索引是Innodb自动创建的,不需要主动create index。
三、非聚簇索引(只存储要加索引的列和主键)
如果以别的列作为搜索条件,可以多建几颗B+树,叶子节点只把要搜索的列排序后,和主键存储。查出范围内的列和主键,再把主键从聚簇索引中查找符合条件的记录叫做回表。
四、联合索引(也属于非聚簇索引)
如给表中a,b 2个字段创建联合索引,B+树的叶子节点的用户记录按照a排序,如果a的值相同,再按照b的值排序。用户记录保存a,b,主键。