文法
按照範圍邊界分區,常用於按照時間邊界進行分區。分區邊界必須是遞增的,支援使用MAXVALUE作為最大邊界值。
CREATE TABLE ...
PARTITION BY RANGE COLUMNS (partition_column_list) [PARTITIONS number]
(
PARTITION part_name VALUES LESS THAN (range_bound_value_list),
PARTITION part_name VALUES LESS THAN (range_bound_value_list),
...
)
partition_column_list:
partition_column[, partition_column, partition_column, ...]
range_bound_value_list:
range_bound_value[, range_bound_value, range_bound_value, ...]
說明
RANGE分區策略與RANGE COLUMNS分區策略的區別請參見Range Columns分區策略與Range分區策略對比。
限制
Range Columns分區不支援使用分區函數。
預設最大分區數目不允許超過8192。
預設最大分區列數目不允許超過5個。
所有分區的名字不能重複,長度預設不能超過16個字元。
樣本
使用向量分區鍵birthday、id定界分割並建表。
CREATE TABLE tb_rc(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime not null,
primary key(id)
)
PARTITION BY RANGE COLUMNS(birthday, id)
(
PARTITION p1 VALUES LESS THAN('2020-01-01', 1000),
PARTITION p2 VALUES LESS THAN('2021-01-01', 2000),
PARTITION p3 VALUES LESS THAN('2022-01-01', 3000),
PARTITION pm VALUES LESS THAN(MAXVALUE,MAXVALUE)
)
資料類型限制
整數類型: BIGINT/BIGINT UNSINGEDINT/INT/INT UNSINGED/MEDIUMINT/MEDIUMINT UNSINGED/SMALLINT/SMALLINT UNSINGED/TINYINT/TINYINT UNSINGED
時間類型:DATETIME/DATE
字串類型:CHAR/VARCHR
定點類型:DECIMAL(小數部分的位元要求必須是0)