TeleDB-X是天翼云基于PostgreSQL研发的企业级分布式数据库管理系统。支持完整事务能力的同时兼具写扩展性,完整兼容 PostgreSQL语法和常用Oracle语法。
TeleDB-X数据库支持shard分片表和复制表(全局表),创建shard分片表时,有两种情况:
1、在原建表语句加上distribute by shard(分布键字段)关键字。
2、不加distribute by shard(分布键字段)关键字,由系统默认使用主键、主键第一个字段,或第一个字段作为表的分布键。
例如:
指定分布键:
create table test_shard(id serial not null, name text) distribute by shard(name) ;
这里指定name字段为分布键。
不指定分布键:
create table test(id int, name varchar, birth date);
这里没有指定分布键,按上述规则,系统会自动选择name字段为分布键。
查看表结构:
teledb=# \d+ test_shard
Table "public.test_shard"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+---------+-----------+----------+----------------------------------------+----------+--------------+-------------
id | integer | | not null | nextval('test_shard_id_seq'::regclass) | plain | |
name | text | | not null | | extended | |
Distribute By: SHARD(name)
Location Nodes: ALL DATANODES