注意观察 topn 没有下推的 plan 里面,除了 topn 没下推之外,还有一个 UnionScan 算子
这个算子一般是在事务里面做读/写的时候,才会使用到的算子。
所以你可以这样验证一下,是不是这样的场景就没有用到 topn 下推
begin
insert some data
update xxx where xxx order by limit 1
rollback
而不在 begin 里面,直接执行
update xxx where xxx order by limit 1
就下推了…
如果是这个问题,可以给我们提一个 issue,应该是事务里面 union scan 对 topn 下推这块没处理好。
@h5n1