首页 > 其他分享 >回表查询导致 select * 比select 具体字段快

回表查询导致 select * 比select 具体字段快

时间:2022-12-16 16:36:43浏览次数:43  
标签:join 查询 回表 字段 主键 select

 

这里使用的是postgresql

 

联表查询 select * 0.008秒  快的不寻常

 

 

 

一样的条件  select 主键 略逊一筹

如果加上其他字段差的更多了,差距大概在五倍左右

 

 

 

 

看一下explain执行计划

 

select * 的 explain

 

正常的左连接 和 全表扫描

 

 

 

select 主键

这里使用的是 merge lfet join 

 

 

通过上面看出  大概率是merge join 没干过 hash join

 

但是如果查询的不止主键,还有其他字段,就又慢了下来

 

 

 

看看主键及其他字段的查询计划

使用的也是hash left join  但是速度也是慢了一下

 

 

 

查询的字段又主键,走主键索引,回表查询,导致,查询一下非主键字段试试

 

速度又快起来了

 

 

但是我这里的主键是唯一主键索引,应该不会导致回表查询   为什么会造成这样的问题?

 

 

 难道这样子不是主键,只是普通的索引?

感觉就是回表查询在搞鬼

 

标签:join,查询,回表,字段,主键,select
From: https://www.cnblogs.com/bawanglong168/p/16987715.html

相关文章