sql >> Databasteknik >  >> RDS >> Mysql

sprida mysql-data över flera diskar

Du kan partitionera en tabell över flera enheter. Ta en titt på den officiella manualen, som täcker detta ämne på djupet.

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

Här är ett exempel för att partitionera en befintlig tabell över flera enheter:

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

Tänk på att NO_DIR_IN_CREATE måste vara avstängd. Det verkar inte fungera i Windows, och det verkar inte fungera med InnoDB.

Om du får slut på diskutrymme på din senaste partition kan du dela upp den med följande uttalande:

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



  1. Returnera det DISTINKT första tecknet i ett fält (MySQL)

  2. Få senast infogade autoinkrement-id i mysql

  3. Hur ändrar du sorteringstypen för en MySQL-kolumn?

  4. Hur får man ledande jokertecken-fulltextsökningar att fungera i SQL Server?