大数据场景下JOIN的性能问题

https://zhuanlan.zhihu.com/p/363151441
https://zhuanlan.zhihu.com/p/379967662

面对OLAP场景, 数据不可避免都需要从存储获取数据拉出来计算,那么又应该如何高效稳定的做Join呢?

先不总结了,好累。。 可以再联想准备下 mr join问题如何解决 ,mysql join问题如何解决,业务层面需要注意什么原则(尽量大表left join 小表)

什么是内存HashJoin?

什么是SortMergeJoin?
除了上面提到的HashJoin以外,PolarDB-X也实现了SortMergeJoin,SortMergeJoin顾名思义就是先同时对两边的数据排序(如果输入已经有序,可以忽略),然后再两边的数据做Join。这种算法理解和实现,其实都比较简单, 其伪代码如下
image.png

自己的场景有哪些

实时计算维表关联

  • 小维表 直接全量load内存 join
  • 大维表 做 LRU

    业务层面需要注意什么原则

    left join:尽量大表left join 小表,小表可以load到内存。而不要小表left join大表