OceanBase 数据库目前支持 HASH、RANGE 和 LIST 三种分区⽅式,MySQL 模式下还支持 KEY、RANGE COLUMNS 和 LIST COLUMNS 三种分区方式,并且支持任意两种分区方式的组合。
当前 MySQL 模式和 Oracle 模式均支持的二级分区如下:
HASH + HASH 分区
HASH + RANGE 分区
HASH+ LIST 分区
RANGE + HASH 分区
RANGE +RANGE 分区
RANGE +LIST 分区
LIST+ HASH 分区
LIST+RANGE 分区
LIST+LIST 分区
除上述二级分区外,MySQL 模式还支持以下二级分区:
HASH +RANGE COLUMNS 分区
RANGE +KEY 分区
RANGE +RANGE COLUMNS 分区
RANGE +LIST COLUMNS 分区
LIST+KEY 分区
LIST+RANGE COLUMNS 分区
LIST+LIST COLUMNS 分区
KEY +HASH 分区
KEY +RANGE 分区
KEY +RANGE COLUMNS 分区
KEY +LIST COLUMNS 分区
RANGE COLUMNS+HASH分区
RANGE COLUMNS+RANGE 分区
RANGE COLUMNS+LIST 分区
RANGE COLUMNS+LIST COLUMNS 分区
LIST COLUMNS +HASH 分区
LIST COLUMNS +RANGE 分区
LIST COLUMNS +LIST 分区
LIST COLUMNS +RANGE COLUMNS 分区
当前,⼆级分区表可分为模板化二级分区表和非模板化二级分区表。
模板化⼆级分区表的每个⼀级分区下的⼆级分区都按照模板中的⼆级分区定义,即每个⼀级分区下的⼆级分区定义均相同。
语法如下:
对于模板化⼆级分区表来说,⼆级分区的命名规则为 ($part_name)s($subpart_name) 。
例如,对于下⾯的 t_range_range 表,p0 下的 3 个⼆级分区的分区名分别为 p0srp1、p0srp2、p0srp3。
创建非模板化二级分区表
⾮模板化⼆级分区表的每个⼀级分区下的⼆级分区均可以⾃由定义,即每个⼀级分区下的⼆级分区的定义可以相同也可以不同。
对于⾮模板化⼆级分区表来说,⼆级分区的分区名即为⾃定义的分区名。
例如,对于下⾯的 t_range_range1 表,p0 下的 3个⼆级分区的分区名分别是 p0_r1、p0_r2、p0_r3。