gpt4 book ai didi

postgresql - Postgres XC 中的 DISTRIBUTE BY REPLICATE 和 HASH 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 12:20:02 29 4
gpt4 key购买 nike

根据SourceForge Postgres-XC 的页面,在 Postgres-XC 中创建分布式表时,它可以使用属性 DISTRIBUTE BY :

  • DISTRIBUTE BY REPLICATION:表的每一行都将被复制到 Postgres-XC 数据库集群的所有数据节点中。
  • DISTRIBUTE BY HASH:表的每一行将根据指定列的哈希值放置。允许以下类型作为分布列:INT8、INT2、OID、INT4、BOOL、INT2VECTOR、OIDVECTOR、CHAR、NAME、TEXT、BPCHAR、BYTEA、VARCHAR、FLOAT4、FLOAT8、NUMERIC、CASH、ABSTIME、RELTIME、DATE、TIME、 TIMESTAMP、TIMESTAMPTZ、INTERVAL 和 TIMETZ。

这到底是什么意思?

最佳答案

在这里回答我自己的问题,作为 documentation说并且@a_horse_with_no_name 指出,Distribute by Replication 会将所有记录分发到所有节点,并且Distribute by Hash将根据其散列的列分隔记录。例如:

CREATE TABLE EMPLOYEE (EMPID INT, NAME TEXT) DISTRIBUTE BY HASH (EMPID) TO datanode1, datanode2;

记录分布在两个节点之间。

此外,通过复制分发是为了读取缩放 -> 使用协调器进行 DML,并从各个节点获取记录。

Distributed by Hash 是为了write scaling -> 使用节点做 DML,从 Coordinator 获取记录。引用this获取更多信息。

关于postgresql - Postgres XC 中的 DISTRIBUTE BY REPLICATE 和 HASH 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266057/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com