我有一個整數列範圍從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