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。