Mysql
 sql >> Base de données >  >> RDS >> Mysql

répartir les données mysql sur plusieurs disques

Vous pouvez partitionner une table sur plusieurs lecteurs. Jetez un œil au manuel officiel, qui couvre ce sujet en profondeur.

http://dev.mysql.com/doc/refman/5.5 /fr/partitionnement.html

Voici un exemple pour partitionner une table existante sur plusieurs lecteurs :

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

N'oubliez pas que cela nécessite que NO_DIR_IN_CREATE soit désactivé. Cela ne semble pas fonctionner sous Windows, et cela ne semble pas fonctionner avec InnoDB.

Si vous manquez d'espace disque sur votre dernière partition, vous pouvez la diviser avec l'instruction suivante :

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