2011-12-29 81 views
2

我有一个整数列范围从1到32(此列识别存储记录的类型)的表。我怎么能执行这个MySQL partitoning?

类型5和12代表行的总数的70%,并且这数量大于1M行越大,所以它似乎是有意义的分区表。

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

+4

“这似乎是有道理的分区表”。你是否遇到过一些真正的问题,或者你是否从互联网上得到了这个想法? – 2011-12-29 16:19:07

+1

一百万行,你已经要分区.. – 2011-12-29 16:35:46

回答

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) 
); 
0

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