我有一个整数列范围从1到32(此列识别存储记录的类型)的表。我怎么能执行这个MySQL partitoning?
类型5和12代表行的总数的70%,并且这数量大于1M行越大,所以它似乎是有意义的分区表。
问题是:如何可以创建一组的3个分区,一个含有5型的记录,包含类型12记录的第二和第三个与剩余的记录?
我有一个整数列范围从1到32(此列识别存储记录的类型)的表。我怎么能执行这个MySQL partitoning?
类型5和12代表行的总数的70%,并且这数量大于1M行越大,所以它似乎是有意义的分区表。
问题是:如何可以创建一组的3个分区,一个含有5型的记录,包含类型12记录的第二和第三个与剩余的记录?
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)
);
只要type
是一个索引,那么MySQL已逻辑分区表给你。除非你真的需要物理分区,否则在我看来你只会为自己制造麻烦。
“这似乎是有道理的分区表”。你是否遇到过一些真正的问题,或者你是否从互联网上得到了这个想法? – 2011-12-29 16:19:07
一百万行,你已经要分区.. – 2011-12-29 16:35:46