【 TiDB 使用环境】
v4.0.13
【概述】 场景 + 问题概述
问题: tidb 的 merge join 和 hash join 输出结果是保证否有序?
【 TiDB 使用环境】
v4.0.13
【概述】 场景 + 问题概述
问题: tidb 的 merge join 和 hash join 输出结果是保证否有序?
这个结果没办法保证了~
每个tikv 的算子下推 ,计算回来的结果,然后聚合到tidb 中 ( 毕竟不是一个节点,是多个节点)
这么说, index lookup join也不保序吗?
为了实现这一点,Outer Worker 通过管道将 task 发送给 Main Thread ,Main Thread 从管道中按序读取 task 并执行 Join 操作,
这样便可以实现在多线程并发执行的情况下的`保序需求`
这是某个节点收到下推算子运行的描述了,
如果请求并发和返回的信息是无序(执行时间不一样),怎么保证顺序?
如果请求和返回需要保证有序性,怎么保证效率?
以上的场景,也可以考虑下,我感觉比较难平衡
研究一下merge join的方式,理论上merge join的返回是有序的。
参考:https://docs.pingcap.com/zh/tidb/stable/explain-joins/#merge-join
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。