MySQL中的索引按照物理存储的方式分为聚集索引和非聚集索引;
- 聚集索引索引和数据存储在一起,B+树的叶子节点就是表数据,如果通过聚集索引查询数据,直接就可以查询出我们想要的数据;
- 非聚集索引B+树的叶子节点存储的是主键值,我们查询的时候首先是查到主键值,然后拿着主键值再去聚集索引中再搜索一次才能拿到我们想要的数据;
- 拿着主键值再去聚集索引中查询一次这个过程就是回表查询。
如下图,如果一张表有三个字段 id 分数 姓名;其中id是主键,name是普通索引(非聚集索引);
通过主键索引(聚集索引)可以直接查到我们想要是所有数据;通过非聚集索引我们则要先查到主键,然后再通过主键到聚集索引中查询到分数这个字段。
每天一道面试题 同步更新至公众号:hellotqq
欢迎关注,和您一起成长