分布键使用约束
- 分布键字段不支持更新,更新分布键需要先删除记录,再插入新的记录。
- 分布键字段类型不支持修改。
- 分布键字段的长度不支持修改。
- 分布键数据类型支持有限制,char,varchar,varchar2,text,date,timestamp,int,bigint,float8,number,numberic。
- 分布键只能选择一个字段。
分布键选择参考
- 分布键关系到数据分布是否均衡,不能因为分布键值不均导致数据倾斜,出现木桶效应。
- 如果有主键,则选择主键做分布键。
- 如果是复合主键,则可选择数据重复率低的字段做分布键。
- 没有主键的可以使用JAVA生成UUID做分布键(这里不是UUID类型)。
- 如果涉及表关联,则选择关联字段做分布键。
- 可以按业务类型,地区或者分公司做分布键。
上述分布键选择原则冲突时,按从上到下的顺序选择。
分布键对其它约束影响
- 主键必需包含分布键字段。
- 唯一索引必需包含分布键字段。
- 外键必需是分布键字段。