为什么解释分区显示每个选择查询的第一个分区?

时间:2014-05-27 11:01:28

标签: mysql sql indexing explain partition

我在mysql 5.1.6 *版本上有一个名为edr的表。我使用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中没有这种条件的记录。

请告诉我上述查询或分区问题是否有任何问题。

1 个答案:

答案 0 :(得分:1)

这是MySQL错误:explained here。 尝试创建包含小于(0)

的值的第一个分区
  

PARTITION unused价值低于(0);