2012-01-11 60 views
0

我有一個表,我想在MYSQL 5.5中分區。我知道該怎麼做,但我還需要爲每個分區指定一個磁盤。分區表,我的硬盤上的不同磁盤上的每個分區

例如,我想放:

  • P01在C:\
  • P02在d:\
  • .......

等上。

我目前使用的這種說法:(不符合我的要求,但完美的作品)

ALTER TABLE transaction_transaction 
PARTITION BY RANGE (effectiveDate_)(
    PARTITION p01 VALUES Less Than (1288562400000), 
    PARTITION p02 VALUES Less Than (1293660000000), 
    PARTITION p03 VALUES Less Than (1298757600000), 
    PARTITION p04 VALUES Less Than (1303855200000), 
    PARTITION p05 VALUES Less Than (1308952800000), 
    PARTITION p06 VALUES Less Than (1314050400000), 
    PARTITION p07 VALUES Less Than (1319148000000), 
    PARTITION p08 VALUES Less Than (1324245600000), 
    PARTITION p09 VALUES Less Than (1329343200000), 
    PARTITION p10 VALUES Less Than (1334440800000), 
    PARTITION p11 VALUES Less Than (1339538400000), 
    PARTITION p12 VALUES Less Than (1344636000000), 
    PARTITION p13 VALUES Less Than (1349733600000), 
    PARTITION p14 VALUES Less Than (1354831200000), 
    PARTITION p15 VALUES Less Than (1359928800000), 
    PARTITION p16 VALUES Less Than (1365026400000), 
    PARTITION p17 VALUES Less Than (1370124000000) 
); 

回答

1
... 
PARTITION p0 
    VALUES LESS THAN (1288562400000) 
    DATA DIRECTORY ="C:\\foo\\bar" 
    INDEX DIRECTORY ="C:\\foo\\baz", 
... 

記住,這需要NO_DIR_IN_CREATE處於關閉

由於user963602點出於這個原因,MySQL並不直接在windows上工作,請參考我的解決方法

+0

這似乎不能在Windows中使用,如[在這裏](http://dev.mysql.com/doc/refman/5.5/en/partitioning-limitations.html):「在Windows上,數據DIRECTORY和INDEX DIRECTORY選項不支持單個分區或子分區(Bug#30459)。「 所以我認爲你在Linux上進行學習? – user963602 2012-01-11 14:22:24

+0

說實話,我只是錯過了這個錯誤(我不使用Windows)。解決方法是在一個磁盤上創建分區,然後停止MySQL服務器,將文件移動到所需的位置,然後使用InnoDB Engin創建mklink <新目標路徑> – 2012-01-11 14:27:17

+0

,我不認爲有可能從_ibdata1_分離數據文件,您是否在Innodb引擎上嘗試過這種方法? – user963602 2012-01-11 15:06:22

0

InnoDB SE不支持指定磁盤/掛載: (