OBCP V4.0每日一题 444444

OBCP V4.0每日一题

问题
在OceanBase中生成执行计划时,可能会加入什么算子来完成跨节点的数据收发?
A. JOIN
B. EXCHANGE
C. GROUP BY
D. ORDER BY

答案
B. EXCHANGE

Tips

  • EXCHANGE算子是分布式执行计划中的核心算子,负责在多个节点之间进行数据重分布和传输。当查询涉及的数据分布在不同节点时,优化器会在执行计划中插入EXCHANGE算子来实现跨节点的数据交换。
  • JOIN、GROUP BY、ORDER BY是逻辑操作算子,而EXCHANGE是分布式执行架构中的数据传输算子。EXCHANGE通常与这些逻辑算子配合使用,例如在分布式JOIN场景中,先通过EXCHANGE将数据重分布到相应节点,再执行JOIN操作。
  • OceanBase的分布式执行框架支持多种EXCHANGE类型,包括广播(BROADCAST)、哈希重分布(HASH DISTRIBUTE)、范围重分布(RANGE DISTRIBUTE)等,优化器会根据数据分布和查询条件选择最高效的数据传输方式。

延伸思考
理解EXCHANGE算子是掌握OceanBase分布式SQL优化的关键。在执行计划中如果看到EXCHANGE算子过多,可能意味着大量数据在节点间传输,这会增加网络开销。通过合理设计分区键和表分组,可以减少EXCHANGE算子的使用,提升查询性能。

2 个赞

444

学习了,OB的各种算子确实不是好理解,还得多练

感谢分享

学习