本文档介绍了创建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
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)PARTITION by HASH (month(date))
PARTITIONS 12;
LINEAR HASH类型的使用示例:
CREATE TABLE sales_linear_hash
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)PARTITION by LINEAR HASH (month(date))
PARTITIONS 12;