开发者社区> 问答> 正文

介绍一下join操作优化经验?

介绍一下join操作优化经验?

展开
收起
茶什i 2019-10-28 16:17:57 772 0
1 条回答
写回答
取消 提交回答
  • 答:join其实常见的就分为两类: map-side join 和 reduce-side join。当大表和小表join时,用map-side join能显著提高效率。将多份数据进行关联是数据处理过程中非常普遍的用法,不过在分布式计算系统中,这个问题往往会变的非常麻烦,因为框架提供的 join 操作一般会将所有数据根据 key 发送到所有的 reduce 分区中去,也就是 shuffle 的过程。造成大量的网络以及磁盘IO消耗,运行效率极其低下,这个过程一般被称为 reduce-side-join。如果其中有张表较小的话,我们则可以自己实现在 map 端实现数据关联,跳过大量数据进行 shuffle 的过程,运行时间得到大量缩短,根据不同数据可能会有几倍到数十倍的性能提升。 备注:这个题目面试中非常非常大概率见到,务必搜索相关资料掌握,这里抛砖引玉。

    2019-10-28 16:34:47
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MySQL查询优化实战 立即下载
如何做小程序性能优化 立即下载
AliSQL性能优化与功能突破的演进之路 立即下载