gestion de partition mysql

Référence: https://www.cnblogs.com/ivictor/p/5025764.html

1. Comment gérer les partitions RANGE et LIST

Prenons l'exemple de la table de partition

Copier le code
CREATE TABLE members ( 
    id INT, 
    fname VARCHAR (25), 
    lname VARCHAR (25), 
    dob DATE 
) 
PARTITION BY RANGE (YEAR (dob)) ( 
    PARTITION p0 VALEURS MOINS QUE (1970), 
    PARTITION p1 VALUES MOINS QUE (1980), 
    PARTITION p2 VALEURS MOINS QUE (1990) 
);
Copier le code

1. Supprimer une partition

Membres ALTER TABLE DROP PARTITION p1;

Remarque: Si une partition est supprimée, les données de la partition seront perdues. Non seulement cela, lorsque vous utilisez la commande show create table members \ G; pour afficher l'instruction de création de table, vous ne pourrez pas voir d'informations sur la partition supprimée.

         Pour la partition RANGE, si la partition p1 est supprimée, lorsque les données sont insérées, si la date se situe dans la plage de 1970 à 1980, les données seront allouées à la partition suivante, à savoir p2.

         Pour la partition LIST, si une partition est supprimée, lors de l'insertion de données, si les données appartiennent à cette partition, l'insertion signalera une erreur.

         Si vous supprimez simplement les données sans supprimer les informations de la partition, vous pouvez utiliser la commande truncate

Membres ALTER TABLE TRONCATE PARTITION p1;

 

2. Ajouter une partition

ALTER TABLE membres AJOUTER LA PARTITION (PARTITION p3 VALEURS MOINS QUE (2000));

Remarque: Pour ajouter une partition à l'aide de la commande ADD, elle ne peut être ajoutée qu'à la fin de la liste des partitions. Dans cet exemple, elle ne peut être ajoutée qu'après 1990.

Bien sûr, dans l'environnement de production réel, cette limitation est trop grande, par exemple, je veux ajouter une partition avant la partition p0, l'intervalle est 1960, ou ajouter une partition 1975 entre p1, à ce moment, l'utilisation d'ADD ne répondra pas Pour de telles exigences, vous pouvez utiliser la commande ALTER TABLE ... REORGANIZE PARTITION.

Par exemple:

Les membres de ALTER TABLE RÉORGANISENT LA PARTITION p0 EN ( 
    PARTITION s0 VALEURS MOINS DE (1960), 
    PARTITION s1 VALEURS MOINS QUE (1970) 
);

La commande REORGANIZE est en fait assez flexible. Elle peut non seulement diviser des partitions, mais aussi fusionner des partitions, par exemple:

Les membres de ALTER TABLE RÉORGANISENT LA PARTITION p0, p1, p2, p3 EN ( 
    PARTITION m0 VALEURS MOINS DE (1980), 
    PARTITION m1 VALEURS MOINS QUE (2000) 
);

Remarque:

1> Vous ne pouvez pas utiliser la commande REORGANIZE PARTITION pour modifier le type de partition d'une table. Vous pouvez uniquement utiliser l'instruction ALTER TABLE ... PARTITION BY ...., par exemple:

ALTER TABLE members 
    PARTITION BY HASH (YEAR (dob)) 
    PARTITIONS 8;

2> La syntaxe de REORGANIZE PARTITION est la suivante:

ALTER TABLE tbl_name 
    REORGANIZE PARTITION partition_list 
    INTO (partition_definitions);

La plage de partitions dans partition_definitions doit couvrir la plage de partitions dans partition_list.

 

Deuxièmement, comment gérer les partitions HASH et KEY

Prenons l'exemple de la table de partition

Copier le code
CREATE TABLE clients ( 
    id INT, 
    fname VARCHAR (30), 
    lname VARCHAR (30), 
    signé DATE 
) 
PARTITION BY HASH (MOIS (signé)) 
PARTITIONS 12;
Copier le code

Pour la partition HASH et la partition KEY, la syntaxe de partition RANGE et LIST ci-dessus n'est pas prise en charge, telle que la partition DROP, TRUNCATE, REORGANIZE.

En fait, il ne prend en charge qu'un seul type de "réglage de partition".

Clients ALTER TABLE COALESCE PARTITION 4;

Le but de cette commande est de couper 4 à 12 partitions de la table des clients.

Clients ALTER TABLE AJOUTER DES PARTITIONS 6;

De même, cette commande ajoute 6 partitions à la table des clients, de 12 à 18.

Je suppose que tu aimes

Origine www.cnblogs.com/pejsidney/p/12718819.html
conseillé
Classement