type
status
date
slug
summary
tags
category
icon
password
什么是回表
回表,顾名思义就是回到表中做二次查询,那么多做一次查询就要耗费时间,所以要减少回表查询
举例说明
表User(id,name,phone,age)
以name创建索引,创建索引的过过程就是以name列数据,经过b+tree算法,将数据存储到硬盘。
生成树的叶子节点是最终的数据,非叶子节点是排序,叶子节点存储的是两个数据,name列数据和主键id的数据。
查询select * where name = 会发生什么?
通过name索引树找到对应的数据,找到id,因为要的是 * ,然后再通过id再去主键索引生成的树中找到所有数据。
这个再次查询数据的过程就是回表查询
结论
回表会产生两次查询,要尽量使用主键条件查询,避免回表的查询