最近和同事探讨一个Mysql索引的问题,谁能用最简单的方式说明白下面两个问题:
1.什么叫覆盖索引?
2.什么叫聚簇索引?
1,从索引树(索引通常是树)中即得到了数据,不需再去数据实际存储位置找。
2,数据本身也是树形结构的,用来构建这个树形的字段就是聚簇索引所使用的字段。
覆盖索引:mysql 可以使用索引直接来获取列的数据,这样就可以不再需要读取数据行。
如果索引的叶子节点中已经包含要查询的数据,那么还有什么必要再回表查询呢?如果一个索引包含(覆盖)所有要查询的字段的值,那么就称为“覆盖索引”
聚集索引:一个表中只能有一个,聚集索引的顺序与数据真实的物理存储顺序一致。查询速度贼快,聚集索引的叶子节点上是该行的所有数据 ,数据索引能加快范围查询(聚集索引的顺序和数据存放的逻辑顺序一致)。主键!=聚集索引。