Citus表的类型
Citus表的类型
分布式表
分布式表元信息存储在协调器上,并经过分片后将数据存储在wrok节点上。
每个创建的分片表都分配一个唯一的分片ID。每个分片在工作节点上的表名为“tablename_shardid”的常规PostgreSQL表。
参考表
在每个work节点上创建同样的表,这些表具有相同的数据并不进行分片。
参考表的特征如下:
需要与较大的分布式表连接的较小的表。
多租户应用中缺少租户ID列或与租户无关的表。
唯一约束由多个列组成,并且表很小。
[tab3 foreign key(tab1.id, tab2.info)]
本地表
存储在协调器节点的常规PostgreSQL表
共址表(Co-Locating)
共址表并非一种表的类型,是一直种关系的集合,将这个集合称为共址表。
-
共址的条件限制
具有共同属性信息(相同的分片方法,相同的列类型,分片数量,分片因子的分布式表),可以组建成共址表 -
不指定共址信息
默认所有具有相同共同属性信息的表为一个共址表 -
指定’none’
创建新的共址表 -
指定表名
将本分布式表加入指定的共址表中 -
create_distributed_table
使用方法参考此函数 -
共址表作用
迁移使用:
共址表是一种关系的集合,当扩容收缩时,会将共址表进行扩容收缩。
功能使用:
外键join等确保同样的数据在同一个work上。
[CitusDB中国]站主,PostgreSQL粉丝,现从事Citus研发工作
愿Citus在中国发展的越来越好