GBase 8a 支持以下5种表类型
1 复制表
2 随机分布表
3 哈希分布表
4 临时表
5 nocopies表
1 复制表
复制表在每个节点上都会保存完整的数据。
CREATE TABLE test.test_rep (
ID INT NOT NULL,
NAME varchar(10),
PASSWORD varchar(10),
PRIMARY KEY(ID)
)ENGINE=EXPRESS REPLICATED
2 随机分布表
默认建表的类型,若不指定任何关键字,即为随机分布表
常用于独立查询的表,每个节点都能有均匀的工作量,性能较单节点查询更好
CREATE TABLE test.test(
ID INT NOT NULL,
NAME varchar(10),
PASSWORD varchar(10),
PRIMARY KEY(ID)
)
3 哈希分布表
使用 DISTRIBUTED BY column_name 的关键字指定建表时以 column_name 为hash列,数据按照指定的hash字段进行分布。
hash分布表不一定均匀,由于列种数据hash不同,被分配在不同的节点,但是相同的hash值数据会被分配在同一节点
CREATE TABLE test.test_dis (
ID INT NOT NULL,
NAME varchar(10),
PASSWORD varchar(10),
PRIMARY KEY(ID)
)
DISTRIBUTED BY('ID')
4 临时表
临时表要使用TEMPORARY 作为关键字,临时表只存在当前session session退出后不再存在。
临时表主要用来保存临时结果,且其它session不可见,适用于简化复杂sql,保存中间结果
create TEMPORARY table test.test_temp (
ID INT NOT NULL,
NAME varchar(10),
PASSWORD varchar(10),
PRIMARY KEY(ID)
)
5 nocopies表
使用关键字NOCOPIES指定建表为NOCOPIES表,为没有备份分片的表,
这样更加节省物理存储,但是也会带来数据丢失的风险。适用于存储严重不足的场景下,满足业务功能
CREATE table test.test_nocopies (
ID INT NOT NULL,
NAME varchar(10),
PASSWORD varchar(10),
PRIMARY KEY(ID)
)NOCOPIES