GBase 8a 控制 join 是否启用 hash 重分布模式

本文介绍gcluster_hash_redistribute_join_optimize参数的作用,包括其不同取值对JOIN性能的影响,以及如何解决自动评估时可能的大表复制问题。重点讲解了哈希重分布策略和配合gcluster_hash_redist_threshold_row参数的使用场景。

问题现象
gcluster_hash_redistribute_join_optimize
这个参数用于控制是否启用 Hash 重分布的 JOIN 模式。
解决方法
 参数=0,禁用 hash 重分布,拉复制表。
 参数=1,一直使用。如果开启此选项,在两个分布表进行等值 JOIN 运算
时,将把其中一个表的数据根据连接条件列的值进行哈希重分布。然后利用
各个运算节点上重分布后的临时表和另一个进行 JOIN 运算。这样,各节点 的运算结果直接汇总即可得到最终结果。
这种策略可以免于将其中一个分布表在所有运算节点上拉成复制表,而是每
个运算节点只需接收这个表的一部分数据。
 参数=2,由规则决定。应用规则为:两表的尺寸相差不超过 20%时,使用哈 希重分布 JOIN;否则不使用。
该参数的默认值是 2。
当参数=2,自动评估时,有时会将大表拉成复制表进行 join,性能较慢。比 如 3 亿的表 left join 7000 万的表,自动评估会将右表拉复制表,不如 hash 重 分布性能快。此类情况,可以配合如下参数使用:
gcluster_hash_redist_threshold_row
当该值不为 0 时,若小表拉表的数据行数大于该值,进行 HASH 重分布 JOIN。
该参数的默认值是 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值