2011-12-29 82 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已邏輯分區表給你。除非你真的需要物理分區,否則在我看來你只會爲自己製造麻煩。