分布式数据库一级分区和二级分区
1.1 一级分区
OceanBase1.0现在支持的一级分区类型有:HASH, KEY, RANGE, RANGE COLOMNS (LIST, LIST COLUMNS, INTERVAL分区正在开发中)
1.2 二级分区
上面介绍了基本的一级分区功能, 一级分区只能按照一个维度进行数据的划分,而很多互联网流水业务都需要按两个维度划分数据:一个维度是时间,数据是按照时间顺序生成的;另外一个维度是用户。这时候就能使用OceanBase的二级分区的方式来划分数据,时间维度用RANGE分区,用户ID用HASH分区。
二级分区的每一级分区方式与一级分区方式相同,只是第二级的分区是在级分区的基础之上再进行一次分区划分。如下history_t表按一级HASH划分3个分区,每个一级分区按时间RANGE COLUMNS划分为4个分区,总共有12个分区。
CREATE TABLE history_t(user_id INT, gmt_create DATETIME, info VARCHAR(20), PRIMARY KEY(user_id, gmt_create))PARTITION BY HASH(user_id)SUBPARTITION BY RANGE COLUMNS(gmt_create)
SUBPARTITION TEMPLATE (SUBPARTITION p0 VALUES LESS THAN ('2014-11-11'),
SUBPARTITION p1 VALUES LESS THAN ('2015-11-11'),
SUBPARTITION p2 VALUES LESS THAN ('2016-11-11'),
SUBPARTITION p3 VALUES LESS THAN (MAXVALUE))PARTITIONS 3;
相关文章