我该如何执行这个MySQL分区?

时间:2011-12-29 16:17:23

标签: mysql database partitioning

我有一个包含整数列的表,范围从1到32(此列标识存储的记录类型)。

类型5和12表示总行数的70%,并且此数字大于1M行,因此对表进行分区似乎是有意义的。

问题是:如何创建一组3个分区,一个包含类型5记录,第二个包含类型12记录,第三个包含剩余记录?

3 个答案:

答案 0 :(得分:2)

http://dev.mysql.com/doc/refman/5.1/en/partitioning-list.html

create table some_table (
    id INT NOT NULL,
    some_id INT NOT NULL
)
PARTITION BY LIST(some_id) (
    PARTITION fives VALUES IN (5),
    PARTITION twelves VALUES IN (12),
    PARTITION rest VALUES IN (1,2,3,4,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
);

答案 1 :(得分:0)

答案 2 :(得分:0)

如果type是索引,那么MySQL已经为你逻辑地为表分区。除非你真的需要物理分区,否则在我看来你只是为自己制造麻烦。