本文档介绍了创建HASH分区表的方法。
语法
创建HASH分区表。把数据按照哈希规则打散到不同的分区上,支持表达式来对分区列的值进行处理。
CREATE TABLE ... PARTITION BY [LINEAR] HASH(expr) [PARTITIONS number]
( PARTITION partition_name1,
PARTITION partition_name2,...);
参数
参数名称 | 参数说明 |
expr | 分区字段表达式,目前只支持INT类型,不支持字符类型。 |
number | HASH分区数量。 |
partition_name | 分区名称,同一个表中不可重复。 |
描述
HASH算法是按照对分区个数取模。
HASH分区支持扩展类型LINEAR HASH。LINEAR HASH与HASH的不同之处在于,LINEAR HASH使用线性二次幂算法,而HASH使用散列函数值的模数。在语法上,LINEAR HASH和HASH的唯一区别是LINEAR在PARTITION BY子句中添加了关键字。
示例
HASH类型的使用示例:
CREATE TABLE sales_hash
(
s_id INT,
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT,
PRIMARY KEY(s_id)
)PARTITION by HASH (s_id)
PARTITIONS 7;
LINEAR HASH类型的使用示例:
CREATE TABLE sales_linear_hash
(
s_id INT,
part_no INT,
country varchar(20),
date DATE,
amount INT,
PRIMARY KEY(s_id)
)PARTITION by LINEAR HASH (s_id)
PARTITIONS 7;