首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres中按复制分发和散列的区别是什么?

Postgres中按复制分发和散列的区别是什么?
EN

Stack Overflow用户
提问于 2015-07-07 10:29:09
回答 1查看 2.7K关注 0票数 4

根据Postgres-XC的SourceForge页面,在Postgres-XC中创建分布式表时,它可以通过以下方式获取属性distributed:

  • 按复制分发:表的每一行将被复制到Postgres数据库集群的所有Datanode中。
  • 按散列分发:表的每一行将根据指定列的哈希值放置。下列类型允许作为分发列: INT8、INT2、OID、INT4、BOOL、INT2VECTOR、OIDVECTOR、CHAR、NAME、TEXT、BPCHAR、BYTEA、VARCHAR、FLOAT4、FLOAT8、NUMERIC、column、RELTIME、日期、时间、时间戳、TIMESTAMPTZ、INTERVAL和TIMETZ。

这到底是什么意思?

EN

回答 1

Stack Overflow用户

发布于 2015-07-28 05:41:01

在这里回答我自己的问题时,正如文档所说和@a_horse_with_no_name所指出的那样,通过复制分发的将将所有记录分发到所有节点,而由Hash分发的将按散列分隔记录。例如:

代码语言:javascript
复制
CREATE TABLE EMPLOYEE (EMPID INT, NAME TEXT) DISTRIBUTE BY HASH (EMPID) TO datanode1, datanode2;

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

此外,由复制分发的是 replication ->使用协调器执行DML,并从各个节点获取记录。

由Hash分发的是为编写 ->使用节点进行DML,并从协调器中获取记录。有关更多信息,请参考

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31266057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档