【发布时间】:2017-02-03 17:10:52
【问题描述】:
我有以下表格设置(示例中简化了列名):
CREATE TABLE data_2016
( `a` INTEGER ,
`b` INTEGER,
`c` VARCHAR(255),
`d` BIGINT,
`e` VARCHAR(255) NOT NULL,
`f` INTEGER ,
`g` BIGINT ,
`h` BIGINT ,
`i` SERIAL,
PRIMARY KEY (`d`,`i`),
UNIQUE KEY(`b`, `c`, `d`, `e`, `f`,`g`,`h`,`i`),
INDEX `idx1` (`b`,`c`)
)
PARTITION BY RANGE (`d`) (
PARTITION p1 VALUES LESS THAN (...)
...
PARTITION px VALUES LESS THAN (MAXVALUE)
)
但我收到了异常A UNIQUE INDEX must include all columns in the table's partitioning function
我通读了文档,据我所知,我确实有正确的设置。分区列d 包含在PRIMARY KEY 和UNIQUE KEY 定义中。我在这里做错了什么?
【问题讨论】:
-
我认为这种情况下的唯一索引是指主键,而不是唯一键。
-
@GordonLinoff 但分区列在两者中
-
。 .
i列。 -
@GordonLinoff
i列呢?我没有对它进行分区。是说我需要将其包含在分区中吗? -
你希望通过
PARTITIONing获得什么?它很少提供任何性能优势。 (由于混淆,我无法猜测答案。)
标签: mysql sql indexing database-partitioning