优先考虑大表间的 JOIN ,尽量让大表 JOIN 条件的列为 Hash 分布列(相关子 查询的相关 JOIN 也可以参考此原则),以使得大表间的 JOIN 可以直接下发到 各节点分布式执行。 其次考虑 GROUPBY ,尽量让 GROUPBY 带有 Hash 分布列,让分组聚合一步 完成。 当有多个 join 或 group 列可选择时,优先选择唯一值多( count(distinct) 值大) 的列做 Hash 分布列,让数据均匀分布。 通常是等值查询的列,并且使用的频率很高的应考虑建立为 hash 分布列。