ALTER TABLE City PARTITION BY RANGE(id) (
PARTITION p0 VALUES LESS THAN (1000),
PARTITION p1 VALUES LESS THAN (2000),
PARTITION p2 VALUES LESS THAN (3000),
PARTITION p3 VALUES LESS THAN (4000),
PARTITION p4 VALUES LESS THAN (MAXVALUE));
ALTER TABLE City ADD citydate DATE;UPDATE City SET citydate = current_date - INTERVAL truncate(rand()*1000,0) DAY;ALTER TABLE City REMOVE PARTITIONING;ALTER TABLE City DROP PRIMARY KEY, ADD INDEX(id);ALTER TABLE City PARTITION BY RANGE (to_days(citydate)) (
PARTITION p0 VALUES LESS THAN (to_days('2007-01-01')),
PARTITION p1 VALUES LESS THAN (to_days('2008-01-01')),
PARTITION p2 VALUES LESS THAN (to_days('2009-01-01')),
PARTITION p3 VALUES LESS THAN (to_days('2009-03-01')),
PARTITION p4 VALUES LESS THAN (to_days('2009-06-01')),
PARTITION p5 VALUES LESS THAN MAXVALUE);EXPLAIN PARTITIONS SELECT count(*) FROM City WHERE citydate BETWEEN '2009-01-01' AND '2009-08-01';+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | City | p3,p4,p5 | ALL | NULL | NULL | NULL | NULL | 4079 | Using where |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
Comment
Comment by Sarah Sproehnle on November 9, 2009 at 11:22am
Comment by jshoulet on November 5, 2009 at 6:20pm
Comment by Sarah Sproehnle on November 5, 2009 at 3:51pm
Comment by jshoulet on November 5, 2009 at 3:00pm
Comment by Sarah Sproehnle on September 8, 2009 at 2:40pm
© 2013 Created by Chris.
Powered by
You need to be a member of Everything MySQL to add comments!
Join Everything MySQL