Mysql
 sql >> Database >  >> RDS >> Mysql

diffondendo i dati MySQL su più dischi

È 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"
);