1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
AntDB简介
快速入门
用户手册
登录数据库
增删改查
建索引
执行计划
事务自动提交设置
数据安全
系统架构
最佳实践
参考指南
  • 文档首页 /
  • 用户手册 /
  • 建表 /
  • 创建分片表

创建分片表

更新时间:2024-04-16 15:44:11

注意:仅在分布式版本中可以创建分片表

AntDB支持多种分片方式,默认为hash分片。

创建如下测试表,可以看出分片键选择的默认行为。

create table test1
(
    id int,
    name text
);
create table test2
(
    id int,
    name text,
    primary key (name)
);
create table test3
(
    id int,
    name text
) distribute by hash(name);
create table test4
(
    id int,
    name text,
    constraint c_name unique(name)
);
create table test5
(
    id int,
    name text
) distribute by replication;

adb中通过\d+ tablename命令可以看到表分片方式:

antdb=> \d+ test1
                                    Table "user1.test1"
 Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description 
--------+---------+-----------+----------+---------+----------+--------------+-------------
 id     | integer |           |          |         | plain    |              | 
 name   | text    |           |          |         | extended |              | 
Distribute By: HASH(id)
Location Nodes: ALL DATANODES

antdb=> \d+ test5
                                    Table "user1.test5"
 Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description 
--------+---------+-----------+----------+---------+----------+--------------+-------------
 id     | integer |           |          |         | plain    |              | 
 name   | text    |           |          |         | extended |              | 
Distribute By: REPLICATION
Location Nodes: ALL DATANODES

可以看到test1test5 有不同的分片方式。

在AntDB中也提供了不同分片方式之间的转换。

复制表修改为分片表:

alter table test5 distribute by hash(id);

分片表修改为复制表:

alter table test5 distribute by replication;

修改分片字段:

alter table test5 distribute by hash(name);
问题反馈