什么是数据库回表
1、首先明确,回表其实就是查询的一个步骤,当然是在某些场景下才有。
2、一般数据库建表时,会创建索引,以普通索引为例,创建的索引结构中包含的是聚簇索引的值(一般就是主键id),在根据此普通索引进行查询时,首先会查到普通索引的位置,比如下标是110,那么会从110处取出聚簇值,也就是id值,再拿id值取表中取数据,
这个过程就叫做回表。
3、再说下什么是聚簇索引,一个表建立后,如果有主键,主键就是默认的聚簇索引,它的特点就是,数据的物理存储顺序和索引顺序一致,一个表建立好了,存储的物理顺序也不会再改变了,所以也说,聚簇索引只有一个。没有主键,就会自动建立,此处不细说了。
4、这里说的是普通索引情况下,走的是回表,那么如果是唯一索引呢?其实第二条没有说完整,在找到下表为110后,首先回表一次,如果是普通索引,那么还会再检索一次111下标本身是不是正确的索引,当然很多时候可能111这个已经不是了,但是这个操作是进行
了。而如果是唯一索引,就没有这一步操作了,回表后就直接返回数据了。这也就是普通索引和唯一索引的区别了。
5、以上就是我对这一块知识的理解,如有错误,望各位指正。盗一张图