主键索引:针对于表中主键创建的索引,默认自动创建,只能有一个,primary。
唯一索引:避免同一个表中某数据列中的值重复,可以有多个,unique。当你为某个字段创建唯一约束时,会自动创建唯一索引。
常规索引:快速定位特定数据,可以有多个。
全文索引:查找的是文本中的关键字,而不是比较索引中的值,可以有多个。fulltext
在innodb中,根据索引的存储形式,又可以分为以下两种(换句话说,要么是聚集索引,要么是二级索引):
聚集索引: 将数据存储与索引放到一块,索引结构的叶子节点保存了行数据,必须有且只有一个。
二级索引: 将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键,可以存在多个。
注意,一定会有聚集索引:
1.默认主键为聚集索引;
2.如果不存在主键,将使用第一个唯一(unique)索引作为聚集索引;
3.上述都没有,则innodb会自动生成一个rowid作为隐藏的聚集索引。
回表查询:
是指先根据二级索引查到键值,然后通过键值回表查询聚集索引,从而获取行(row)数据。