postgresql对于HashJoin算法的Data skew优化与MCV处理

网友投稿 364 2022-09-24

postgresql对于HashJoin算法的Data skew优化与MCV处理

Data skew 很好理解,即数据倾斜。现实中的数据很多都不是正态分布的,譬如城市人口,东部沿海一个市的人口与西部地区一个市地区的人口相比,东部城市人口会多好几倍。 postgresql的skew的优化核心思想是"避免磁盘IO"。 优化器往往会选择小表和正态分布的表做inner table,这会导致 outer table要不更大,要不是非正态分布。如果outer table的表是非正态分布的话,会在batch0来处理那些most common value(MCV) 大致过程如下: 1、prepare skew hash table

这样做的好处是,50%的mcv在batch0阶段就处理好了,就可以节约50%的磁盘IO。 (也就是说把常见数据放到了batch0中匹配,而且在batch0的处理是不需要从disk load 数据的,从而减少了IO) 参考:​​​全面解读PostgreSQL和Greenplum的Hash Join​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:神仙打架?Mate 40与iPhone12系列最全参数对比!
下一篇:原创 HTML5+CSS3 学习笔记 08
相关文章

 发表评论

暂时没有评论,来抢沙发吧~