我有一个名为mysql 5.1.6*版本的表。我已经使用alter -
对表进行了分区ALTER TABLE edr PARTITION BY RANGE (TO_DAYS(eventDate))
(
PARTITION apr25 VALUES LESS THAN (TO_DAYS('2014-04-26')),
PARTITION apr26_30 VALUES LESS THAN (TO_DAYS('2014-05-01')),
PARTITION may01_05 VALUES LESS THAN (TO_DAYS('2014-05-06')),
PARTITION may06_10 VALUES LESS THAN (TO_DAYS('2014-05-11')),
PARTITION may11_15 VALUES LESS THAN (TO_DAYS('2014-05-16')),
PARTITION may16_20 VALUES LESS THAN (TO_DAYS('2014-05-21')),
PARTITION may21_25 VALUES LESS THAN (TO_DAYS('2014-05-26')),
PARTITION may26_31 VALUES LESS THAN (TO_DAYS('2014-06-01')),
PARTITION june01_05 VALUES LESS THAN (TO_DAYS('2014-06-06')),
PARTITION june06_10 VALUES LESS THAN (TO_DAYS('2014-06-11')),
PARTITION june11_15 VALUES LESS THAN (TO_DAYS('2014-06-16')));
现在当我运行任何查询,例如:
explain partitions select count(*) from edr where eventdate > '2014-05-21';
它给我的分区输出为- apr25,may21_25, may26_31, jun01_05,jun_06_10,jun11_15。在分区apr25中,没有这样的记录
请让我知道上面的查询有什么问题还是分区问题
这是MySQL的bug:在这里解释。尝试创建包含小于(0)
值的第一个分区PARTITION
unused
VALUES小于(0);