Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verteilen von MySQL-Daten auf mehrere Festplatten

Sie können eine Tabelle über mehrere Laufwerke partitionieren. Werfen Sie einen Blick auf das offizielle Handbuch, das dieses Thema ausführlich behandelt.

http://dev.mysql.com/doc/refman/5.5 /de/partitionierung.html

Hier ist ein Beispiel, um eine vorhandene Tabelle über mehrere Laufwerke zu partitionieren:

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

Beachten Sie, dass NO_DIR_IN_CREATE deaktiviert sein muss. Es scheint nicht unter Windows zu funktionieren, und es scheint nicht mit InnoDB zu funktionieren.

Wenn Ihnen auf Ihrer letzten Partition der Speicherplatz ausgeht, können Sie sie mit der folgenden Anweisung aufteilen:

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