MySQL分区表--key分区

MySQL分区表–key分区

key分区跟哈希分区很像,两者都会对列进行哈希运算,区别是哈希分区的表达式是用户自定义的,而key分区的表达式是MySQL提供的。MySQL使用MD5()函数进行集群分区;使用服务器内部的跟PASSWORD()相同算法的哈希函数进行表分区。

分区创建的语法也跟哈希分区很相似;

CREATE TABLE k1 (
    id INT NOT NULL,
    name VARCHAR(20),
    UNIQUE KEY (id)
)
PARTITION BY KEY()
PARTITIONS 2;

两者的区别是:

  • 使用KEY,而不是HASH
  • KEY()的参数是一个列表,列表中可以是0到多个列的名字。用作分区的列,必须是主键或者唯一键。

key分区对列的要求:

  • 用作分区的列,必须是主键或者唯一键。
  • 如果KEY()没有显示指定列,默认会使用主键作为列进行分区,如果没有主键,有唯一键,则使用唯一键进行分区。
  • 唯一键必须是NOT NULL

线性key分区:

CREATE TABLE tk (
    col1 INT NOT NULL,
    col2 CHAR(5),
    col3 DATE
)
PARTITION BY LINEAR KEY (col1)
PARTITIONS 3;

你可能感兴趣的:(mysql)