本文档介绍了创建KEY分区表的方法。

语法

创建KEY分区表。

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] KEY(column_list) [PARTITIONS number]
   (partition_definition [, partition_definition] ...);

其中,partition_definition为

 PARTITION partition_name

参数

参数名称

参数说明

column_list

分区字段列表。支持0个或多个,支持INT类型、字符类型、DATE类型、TIME类型、DATETIME类型。

partition_name

分区名称,同一个表中不可重复。

number

KEY分区数量。

描述

KEY分区与HASH分区类似,也是按照HASH算法进行分区,采用与MySQL相同的HASH算法。

KEY分区与HASH分区的区别在于:

  • KEY分区可以没有分区字段,没有分区字段时,默认将主键字段作为分区键。如果没有主键字段时,则按照唯一键进行分区。

  • KEY分区支持多列分区字段。

  • KEY分区支持INT类型、字符类型、DATE类型、TIME类型、DATETIME类型。

  • KEY分区支持扩展类型LINEAR KEY。

示例

KEY类型的使用示例:

CREATE TABLE sales_key
(
  s_id        varchar(20),
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT,
  PRIMARY KEY(s_id)
)PARTITION by key (s_id)
PARTITIONS 11;

LINEAR KEY类型的使用示例:

CREATE TABLE sales_linear_key
(
  s_id        varchar(20),
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT,
  PRIMARY KEY(s_id)
)PARTITION by linear key (s_id)
PARTITIONS 11;