Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

espalhando dados mysql em vários discos


Você pode particionar uma tabela em várias unidades. Dê uma olhada no manual oficial, que aborda esse assunto em profundidade.

http://dev.mysql.com/doc/refman/5.5 /en/partitioning.html

Aqui está um exemplo para particionar uma tabela existente em várias unidades:
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"
    );

Lembre-se de que isso precisa que NO_DIR_IN_CREATE esteja desativado. Parece não funcionar no Windows e não parece funcionar com o InnoDB.

Se você ficar sem espaço em disco em sua última partição, poderá dividi-la com a seguinte instrução:
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"
);