摘要:
https://mp.weixin.qq.com/s/Fv_FaoYDGZuPt4TBHPg-wg
主要介绍 StarRocks 在 Join 查询规划上的经验和探索。文章主要分为四个部分:Join 背景,Join 逻辑优化,Join Reorder,分布式 Join 规划。
#01
Join 背景
—
1
Join 类型
上图列举了常见的 Join 类型:
-
Cross Join:左表和右表的一个笛卡尔积。
-
Full / Left / Right Outer Join:Outer Join 需要根据语义,对两表/左表/右表上没有匹配上的行进行补 Null。
-
Anti Join:输出连接关系上没有匹配上的数据行,通常 Anti Join 出现在not in 或者not exists 子查询的规划中。
-
Semi Join:与 Anti Join 相反,只输出在连接关系上匹配的数据行即可。