我有一个包含整数列的表,范围从1到32(此列标识存储的记录类型)。
类型5和12表示总行数的70%,并且此数字大于1M行,因此对表进行分区似乎是有意义的。
问题是:如何创建一组3个分区,一个包含类型5记录,第二个包含类型12记录,第三个包含剩余记录?
答案 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已经为你逻辑地为表分区。除非你真的需要物理分区,否则在我看来你只是为自己制造麻烦。