2

mysql 5.1.6* バージョンに edr という名前のテーブルがあります。変更を使用してテーブルを分割しました -

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 には、そのような where 条件のレコードはありません。

上記のクエリに何か問題があるか、それともパーティションの問題であるかをお知らせください。

4

1 に答える 1