本文档介绍了创建RANGE-HASH分区表的方法。
语法
创建RANGE-HASH分区表。一级分区是RANGE [COLUMNS] 类型,二级分区是HASH/KEY类型。
CREATE TABLE [ schema. ]table_name
table_definition
PARTITION BY RANGE {(expr) | COLUMNS(column_list)}
SUBPARTITION BY {[LINEAR] HASH(expr) [SUBPARTITIONS number]
| [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)}
(partition_definition [, partition_definition] ...);
其中,partition_definition为
PARTITION partition_name
VALUES LESS THAN {(expr | value_list) | MAXVALUE}
(subpartition_definition [, subpartition_definition] ...)
subpartition_definition为
SUBPARTITION subpartition_name
参数
参数名称 | 参数说明 |
expr | 分区字段表达式,目前只支持INT类型,不支持字符类型。 |
column_list | 分区字段列表,不支持表达式。 |
number | 子分区的数量。 |
value | 分区边界值。 |
value_list | RANGE COLUMNS的情况下使用,多个字段的边界值。 |
MAXVALUE | 最大值。 |
partition_name | 分区名称,同一个表中不可重复。 |
subpartition_name | 子分区名称,同一个表中不可重复。 |
示例
一级分区采用
RANGE (expr)
类型。其中,expr
为分区字段表达式,且仅支持INT类型,不支持字符类型。CREATE TABLE sales_range_hash_1 ( s_id varchar(20), dept_no INT, part_no INT, country varchar(20), date DATE, amount INT, primary key (s_id, amount) ) PARTITION BY RANGE (amount) SUBPARTITION BY KEY(s_id) SUBPARTITIONS 3 ( PARTITION p1 VALUES LESS THAN (1000), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN (3000), PARTITION p4 VALUES LESS THAN (4000) );
一级分区采用
RANGE COLUMNS(column_list)
类型。其中,column_list
为分区字段列表,且不支持表达式。CREATE TABLE sales_range_hash_2 ( s_id varchar(20), dept_no INT, part_no INT, country varchar(20), date DATE, amount INT, primary key (s_id, date) ) PARTITION BY RANGE COLUMNS(date) SUBPARTITION BY KEY(s_id) SUBPARTITIONS 3 ( PARTITION p1 VALUES LESS THAN('2023-01-01'), PARTITION p2 VALUES LESS THAN('2023-02-01'), PARTITION p3 VALUES LESS THAN('2023-03-01'), PARTITION p4 VALUES LESS THAN('2023-04-01') );
该文章对您有帮助吗?