之前系统对表进行表分区中遇到一个问题:
CREATE TABLE flow (
id INT NOT NULL,
bussiness_no VARCHAR(32) NOT NULL,
create_data DATE NOT NULL,
PRIMARY KEY (id) ,
UNIQUE KEY ( bussiness_no,create_data)
)
PARTITION BY KEY(bid)
PARTITIONS 10;
表上的每一个唯一性索引(其中包括主键索引,可以为索引中的部分字段)必须用于分区表的表达式上:
分区列和索引列不匹配如果定义的索引列和分区列不匹配,会导致查询无法进行分区过滤。假设在列a上定义了索引,而在列b上定义的分区。因为每个分区都有其独立的索引,
所以扫描列b上的索引就需要扫描每个分区内对应的索引。要避免这个问题,应该避免建立和分区列不匹配的索引,除非查询中还同时包含了可以过滤分区的条件。
网友评论