KEY分区和HASH分区类似。
HASH分区只支持整数分区,而KEY分区支持使用除BLOB和Text外其他类型的列作为分区键,
创建分区表的时候,可以不指定分区键,默认会首先选择使用主键作为分区键。
CREATE TABLE emp2key (
id INT NOT NULL,
ename VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job VARCHAR(30) NOT NULL,
store_id INT NOT NULL,
PRIMARY KEY(id)
)
PARTITION BY KEY( ) PARTITIONS 4;
在没有主键,也没有唯一键的情况下,就不能指定分区键了:
错误代码: 1488
Field in list of fields for partition function not found in table
CREATE TABLE emp2key1 (
id INT NOT NULL,
ename VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job VARCHAR(30) NOT NULL,
store_id INT NOT NULL
)
PARTITION BY KEY( ) PARTITIONS 4;