sql >> Database >  >> RDS >> Mysql

mysql-gegevens verspreiden over meerdere schijven

U kunt een tabel over meerdere schijven verdelen. Bekijk de officiële handleiding waarin dit onderwerp uitgebreid wordt behandeld.

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

Hier is een voorbeeld om een ​​bestaande tabel over meerdere schijven te verdelen:

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

Houd er rekening mee dat dit NO_DIR_IN_CREATE nodig heeft om uit te staan. Het lijkt niet te werken in Windows, en het lijkt niet te werken met InnoDB.

Als u geen schijfruimte meer heeft op uw laatste partitie, kunt u deze splitsen met de volgende instructie:

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. Hoe u dynamisch een voorbereide instructie kunt maken - en de query opnieuw kunt gebruiken?

  2. Kopieer een tabel (inclusief indexen) in postgres

  3. Hoe alle rijen HTML-tabel te selecteren

  4. Hoe PII te vinden en te maskeren in Elasticsearch