暂无图片
一个SQL加了一个无关紧要的条件后,执行计划改变,执行时间增加上百倍,请高手帮忙看看
我来答
分享
pgdba
2023-01-11
一个SQL加了一个无关紧要的条件后,执行计划改变,执行时间增加上百倍,请高手帮忙看看

背景:

t01_order_release:约5000万行数据

t01_or_ext_rate:12月份约153万行数据

SQL如下,增加了红色框框中的条件后执行时间约为102秒,去掉的话,执行时间约为1.2秒

请高手帮忙看看为啥这个actual rows的差距这么大,因为选择了不同的索引?

无红框条件的执行计划:


有红框条件的执行计划:

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
沙沃兴

明显可以看的出加了红框的条件后,走其他索引扫描了更多的行数。

暂无图片 评论
暂无图片 有用 0
pgdba

就是想知道为啥加了一个无关紧要的条件之后,执行计划就变了?不走主键索引的index scan backward,而走了一个普通索引。

暂无图片 评论
暂无图片 有用 0
沙沃兴

你走主键索引的话,查询相关数据后,还需要回表把其他字段查询出来。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏