聚簇索引
聚簇索引特点:索引的顺序决定了表数据物理存储顺序,并且索引与数据存储在一起,每个表都有唯一一个聚簇索引;而非聚簇索引与表数据存储顺序无关。
覆盖索引
如果索引信息包含了SQL查询的所有信息,则称该索引为“覆盖索引”。相反,如果辅助索引没有查询需要的信息,则需要根据主键从主键索引树中二次查询,这种回到主键索引树二次查找的过程称为“回表”。
覆盖索引是一种空间换时间的优化思路:针对高频次的查询,可以在索引上增加冗余信息,覆盖查询结果,避免回表(二次查询)从而提升查询速度。
联合索引
多个字段共同组成的索引称为“联合索引”。联合索引遵循“最左匹配原则”:只有命中左边的索引,索引匹配才会往下进行;
最左匹配原则的原理
MySQL索引底层是基于B+树实现的,联合索引也是。联合索引是以最左边的索引字段来构建B+树的,非叶子节点存储的是最左边索引字段(与单值索引一样),叶子节点存储的是联合索引多个字段的数据,如下图所示:
参考: