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