È possibile partizionare una tabella su più unità. Dai un'occhiata al manuale ufficiale, che tratta in modo approfondito questo argomento.
http://dev.mysql.com/doc/refman/5.5 /it/partizionamento.html
Ecco un esempio per partizionare una tabella esistente su più unità:
ALTER TABLE mytable
PARTITION BY RANGE (mycolumn)(
PARTITION p01 VALUES Less Than (10000)
DATA DIRECTORY = "/mnt/disk1"
INDEX DIRECTORY = "/mnt/disk1",
PARTITION p02 VALUES Less Than (20000)
DATA DIRECTORY = "/mnt/disk2"
INDEX DIRECTORY = "/mnt/disk2",
PARTITION p03 VALUES Less Than MAXVALUE
DATA DIRECTORY = "/mnt/disk3"
INDEX DIRECTORY = "/mnt/disk3"
);
Tieni presente che questo ha bisogno di NO_DIR_IN_CREATE per essere disattivato. Non sembra funzionare in Windows e non sembra funzionare con InnoDB.
Se esaurisci lo spazio su disco sull'ultima partizione, puoi dividerla con la seguente istruzione:
ALTER TABLE mytable REORGANIZE PARTITION p03 INTO
(
PARTITION p03 VALUES Less Than (30000)
DATA DIRECTORY = "/mnt/disk3"
INDEX DIRECTORY = "/mnt/disk3",
PARTITION p04 VALUES Less Than MAXVALUE
DATA DIRECTORY = "/mnt/disk4"
INDEX DIRECTORY = "/mnt/disk4"
);