update SQL,出现2个执行计划,差异分别是top-ne没下推到tikv。
执行计划1:
top n正常下推,actrows 3
执行计划2:
topn未下推,actrows 10
加了hint可以吗? /*+ LIMIT_TO_COP() */
不加hint也能下推 比如前面贴的687次没下推 42次下推了
统计信息是否是准确呢
hello, 这个 mysql client 里能手动复现出来吗?
如果能的话可以搞一份 replayer 出来, 看看能否有新的发现
如果不能估计就比较玄学了
explain看都是下推了的
交流会上问问大佬吧, 目前暂时没思路
注意观察 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
我是来学习的
坐等最佳答案,然后学习一下
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。