Postgresql 多列分布
在创建表时,在分发中使用多列是否有好处?例如:Postgresql 多列分布,postgresql,Postgresql,在创建表时,在分发中使用多列是否有好处?例如: CREATE TABLE data_facts ( data_id int primary key, channel_id smallint, chart_id smallint, demo_id smallint, value numeric) DISTRIBUTED BY ( channel_id, chart_id, demo_id) 因为有可能我需要分别使用频道id,图表id
CREATE TABLE data_facts (
data_id int primary key,
channel_id smallint,
chart_id smallint,
demo_id smallint,
value numeric)
DISTRIBUTED BY (
channel_id,
chart_id,
demo_id)
因为有可能我需要分别使用频道id
,图表id
和演示id
将数据事实
与三个不同的表格频道
,图表id
连接起来
具体来说,
分发
,并包括我用于加入的效率方面的所有id
谢谢 这取决于要对数据库进行多少分片,以及要在每个分区中分发多少记录,我的意思是,如果在分发中添加多个列,则会将更多的数据分片到更多分区中 这还取决于你是按模还是散列进行切分
但是,在我看来,如果您有一个多列主键,并且您想用这个主键进行切分,那么就有了按多列分布的感觉(所有列都在主键中)否则,您应该按单个列进行切分,这在大多数情况下就足够了。我认为值得注意的是,“在大多数情况下就足够了”表示您的数据集相对较小。具有相同分发密钥的所有数据必须放在集群中最小的磁盘上。因此,多个散列分发密钥是否会提高两个密钥的连接效率(减少重新分发)?还是将这两个键散列在一起,并基于该组合散列将数据分发一次?