开发者社区 问答 正文

为什么GROUP BY只需要在worker线程上执行一次就可以保证结果的正确性?

为什么GROUP BY只需要在worker线程上执行一次就可以保证结果的正确性?

展开
收起
游客gbsb4ehzllekm 2022-05-10 18:34:50 305 分享 版权
来自: 阿里技术
1 条回答
写回答
取消 提交回答
  • 通常来说,每个worker只有所有数据的一个分片,只在一个数据分片上做GROUP BY是有极大的风险得到错误的GROUP BY结果的,因为同一GROUP分组的数据可能不只是在本WORKER的数据分片上,也可能在其它WORKER的数据分片中,被其它WORKER所持有。但是如果我们可以保证同一GROUP分组的数据一定位于同一个数据分片,并且这个数据分片只被一个WORKER线程所持有,那么就可以保证GROUP BY结果的正确性。

    2022-05-10 21:06:36
    赞同 展开评论
问答地址: