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​