本文档介绍了创建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;