上海腾科教育干货分享之达梦数据库课程DMMPP数据分布方式简析

DMMPP支持随机分布、复制分布(fully)、哈希分布、范围分布、LIST列表分布等多种分布表的类型,用户可根据实际情况选择合适的分布类型。

 

一、随机分布

 

1、语法

指定随机分布:CREATETABLE T1(C1 INT) DISTRIBUTED RANDOMLY;

普通语句在MPP模式下建分布表,如果未指定列则默认为RANDOMLY(随机)分布表

CREATE TABLE T1(C1INT);

注意:当使用DTS迁移或用户提供的SQL脚本进行DMMPP环境表结构创建时一定要了解应用业务情况,评估使用默认随机分布是否可满足需求。

 

2、适用

适用于无关联、无要求的表,分布相对均匀。

 

3、缺点和限制

(1)不支持唯一索引;

(2)若存在表关联一定存在数据搬迁;

(3)不允许更新分布列;

 

二、复制分布

 

1、语法

指定复制分布:CREATETABLE T1(C1 INT) DISTRIBUTED FULLY;

 

2、适用

维度表

 

3、缺点和限制

(1)只支持单表查询的更新和删除操作,并且查询项或者条件表达式中都不能包含ROWID伪列表达式;

(2)复制表虽然已经支持修改和删除数据,但不建议数据变化过于频繁;

(3)不允许更新分布列;

 

三、哈希分布

 

1、语法

指定hash分布:CREATE TABLE T1(C1 INT) DISTRIBUTED BY HASH(C1);

也可以省略HASH:CREATE TABLE T1(C1 INT) DISTRIBUTED BY (C1);

 

2、适用

数据质量相对均匀且要求均匀分布,要使用主键。

选择分布列的原则:根据应用业务逻辑,需要进行关联查询的表应该选择同一种分布方式且分布列应选择关联列作为分布列,此时可以使得数据进行节点内关联减少节点间数据搬迁的MAL交互;当一个表要和多个表使用不同的列进行关联查询时选择分布列要有针对性的取舍。

 

3、缺点和限制

(1)主键必需包含分布列,此时要求选择的分布列符合非空约束;

(2)若分布列不能满足非空,可将主键转换为约束方式:原主键列改为非空且唯一约束,但是对于原聚集主键会失去聚集的特性;

(3)外键(引用约束)必需包含分布列,引用列和被引用列都必需包含分布列,且分布情况完全相同;

(4)包含INSTEAD OF触发器的表及垂直分区表不允许更新分布列。

 

四、范围分布

 

1、语法

指定范围分布:CREATETABLE T1(C1 INT) DISTRIBUTED BY RANGE(C1) (VALUES EQU OR LESS THAN (2) ON EP01,VALUES EQU OR LESS THAN (4) ON EP02, VALUES EQU OR LESS THAN (6) ON EP03,VALUES EQU OR LESS THAN (MAXVALUE) ON EP04);

 

2、适用

带有明显范围特性的数据且针对不同范围操作不相互影响

 

3、缺点和限制

(1)可能存在数据分布不均匀的情况,且表结构一旦确定则不能动态增加范围;

(2)分布列与分布列值列表必须一致,并且指定的实例名不能重复;

(3)包含INSTEAD OF触发器的表及垂直分区表不允许更新分布列。

 

五、LIST列表分布

 

1、语法

指定LIST列表分布:CREATE TABLE T1(C1 INT)DISTRIBUTED BY LIST(C1)(VALUES(1,8) ON EP01,VALUES(2,7) ON EP02, VALUES(3,6) ON EP03, VALUES(4,5) ON EP04);

 

2、使用

带有明显属性特征的数据,列表项不建议过多

 

3、缺点和限制

(1)可能存在数据分布不均匀的情况,且表结构一旦确定则不能动态增加列表项;

(2)分布列与分布列值列表必须一致,并且指定的实例名不能重复;

(3)包含INSTEAD OF触发器的表及垂直分区表不允许更新分布列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值