和不一样的是:MySQL没有全局索引,只有分区索引,因此对于MySQL的分区表来说,限制比Oracle要多一些:

1、分区键必须是主键的一部分

2、分区键的数据类型必须是整形(包括时间类型)

3、分区键不能为NULL

下面是一个基于时间的表分区定义:

PARTITION BY RANGE (TO_DAYS(START))
(
 PARTITION p201401 VALUES LESS THAN (TO_DAYS('20140201')),
 PARTITION p201402 VALUES LESS THAN (TO_DAYS('20140301')),
 PARTITION p201403 VALUES LESS THAN (TO_DAYS('20140401')),
 PARTITION p201404 VALUES LESS THAN (TO_DAYS('20140501')),
 PARTITION p201405 VALUES LESS THAN (TO_DAYS('20140601')),
 PARTITION p201406 VALUES LESS THAN (TO_DAYS('20140701')),
 PARTITION p201407 VALUES LESS THAN (TO_DAYS('20140801')),
 PARTITION p201408 VALUES LESS THAN (TO_DAYS('20140901')),
 PARTITION p201409 VALUES LESS THAN (TO_DAYS('20141001')),
 PARTITION p201410 VALUES LESS THAN (TO_DAYS('20141101')),
 PARTITION p201411 VALUES LESS THAN (TO_DAYS('20141201')),
 PARTITION p201412 VALUES LESS THAN (TO_DAYS('20150101')),
 PARTITION pmax VALUES LESS THAN maxvalue
);

关于MySQL的分区管理也没有Oracle那么强大,从5.6开始才支持分区交换。