TeleDB-X是天翼云基于PostgreSQL研发的企业级分布式数据库管理系统。支持完整事务能力的同时兼具写扩展性,完整兼容 PostgreSQL语法和常用Oracle语法。
TeleDB-X数据库支持shard分片表和复制表(全局表),在数据库对象迁移或对象设计阶段,需要规划好表的分布键。
1、分布键选择参考
1) 分布键关系到数据分布是否均衡,不能因为分布键值不均导致数据倾斜,出现木桶效应。
2) 如果有主键,则选择主键做分布键。
3) 如果是复合主键,则可选择数据重复率低的字段做分布键。
4) 没有主键的可以使用JAVA生成UUID做分布键(这里不是UUID类型)。
5) 如果涉及表关联,则选择关联字段做分布键。
6) 可以按业务类型,地区或者分公司做分布键。
上述分布键选择原则冲突时,按从上到下的顺序选择。
2、分布键对其它约束影响
1) 主键必需包含分布键字段。
2) 唯一索引必需包含分布键字段。
外键必需是分布键字段。
3、分布键使用约束
1) 分布键字段不支持更新,更新分布键需要先删除记录,再插入新的记录。
2) 分布键字段类型不支持修改。
3) 分布键字段的长度不支持修改。
4) 分布键数据类型支持有限制,char,varchar,varchar2,text,date,timestamp,int,bigint,float8,number,numberic。
5) 分布键只能选择一个字段。