Partitionen mit ALTER TABLE neu organisieren
In diesem Schritt lernen wir, wie man Partitionen in MySQL mit der ALTER TABLE
-Anweisung neu organisiert. Das Neuorganisieren von Partitionen kann aus verschiedenen Gründen nützlich sein, wie z. B. das Zusammenführen von Partitionen, das Aufteilen von Partitionen oder das Hinzufügen neuer Partitionen.
Stellen Sie zunächst sicher, dass Sie mit dem MySQL-Server verbunden sind und die sales_data
-Datenbank verwenden. Wenn Sie die Verbindung im vorherigen Schritt geschlossen haben, verbinden Sie sich erneut mit:
mysql -u root -p
Geben Sie bei entsprechender Aufforderung das Root-Passwort ein. Wählen Sie dann die sales_data
-Datenbank aus:
USE sales_data;
Beginnen wir damit, eine neue Partition für das Jahr 2024 hinzuzufügen. Derzeit werden alle Verkaufsdaten ab 2024 in der pFuture
-Partition gespeichert. Wir können eine spezifische Partition für 2024 mit der ALTER TABLE
-Anweisung und der ADD PARTITION
-Klausel erstellen:
ALTER TABLE sales ADD PARTITION (PARTITION p2024 VALUES LESS THAN (2025));
Diese Anweisung fügt eine neue Partition namens p2024
hinzu, die alle Zeilen enthalten wird, bei denen das Jahr des sale_date
kleiner als 2025 ist (d. h. das Jahr 2024). Nach dem Hinzufügen der Partition müssen wir die pFuture
-Partition neu organisieren, um das Jahr 2024 auszuschließen.
ALTER TABLE sales REORGANIZE PARTITION pFuture INTO (
PARTITION p2025 VALUES LESS THAN (2026),
PARTITION pFuture VALUES LESS THAN MAXVALUE
);
Dieser Befehl teilt die pFuture
-Partition in die p2025
- und eine neue pFuture
-Partition auf. p2025
wird die Daten für das Jahr 2025 enthalten, und die neue pFuture
wird die Daten für 2026 und später enthalten.
Jetzt überprüfen wir die Partitionstruktur:
SELECT
PARTITION_NAME,
TABLE_ROWS
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_SCHEMA = 'sales_data' AND TABLE_NAME = 'sales';
Sie sollten in der Ausgabe die neuen p2024
-, p2025
- und die aktualisierte pFuture
-Partition sehen.
+----------------+------------+
| PARTITION_NAME | TABLE_ROWS |
+----------------+------------+
| p2020 | 1 |
| p2021 | 2 |
| p2022 | 2 |
| p2023 | 2 |
| p2024 | 1 |
| p2025 | 0 |
| pFuture | 0 |
+----------------+------------+
Als Nächstes sehen wir uns an, wie man Partitionen zusammenführt. Angenommen, wir möchten die p2020
- und p2021
-Partitionen in eine einzelne Partition namens p2020_2021
zusammenführen. Wir können dies mit der ALTER TABLE
-Anweisung und der REORGANIZE PARTITION
-Klausel tun:
ALTER TABLE sales REORGANIZE PARTITION p2020, p2021 INTO (
PARTITION p2020_2021 VALUES LESS THAN (2022)
);
Diese Anweisung führt die p2020
- und p2021
-Partitionen in eine neue Partition namens p2020_2021
zusammen. Die VALUES LESS THAN (2022)
-Klausel gibt an, dass diese Partition alle Zeilen enthalten wird, bei denen das Jahr des sale_date
kleiner als 2022 ist.
Jetzt überprüfen wir die Partitionstruktur erneut:
SELECT
PARTITION_NAME,
TABLE_ROWS
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_SCHEMA = 'sales_data' AND TABLE_NAME = 'sales';
Sie sollten sehen, dass die p2020
- und p2021
-Partitionen durch die p2020_2021
-Partition ersetzt wurden.
+------------------+------------+
| PARTITION_NAME | TABLE_ROWS |
+------------------+------------+
| p2020_2021 | 3 |
| p2022 | 2 |
| p2023 | 2 |
| p2024 | 1 |
| p2025 | 0 |
| pFuture | 0 |
+------------------+------------+
Schließlich sehen wir uns an, wie man eine Partition löscht. Angenommen, wir möchten die p2025
-Partition entfernen. Wir können dies mit der ALTER TABLE
-Anweisung und der DROP PARTITION
-Klausel tun:
ALTER TABLE sales DROP PARTITION p2025;
Jetzt überprüfen wir die Partitionstruktur ein letztes Mal:
SELECT
PARTITION_NAME,
TABLE_ROWS
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_SCHEMA = 'sales_data' AND TABLE_NAME = 'sales';
Sie sollten sehen, dass die p2025
-Partition entfernt wurde.
+------------------+------------+
| PARTITION_NAME | TABLE_ROWS |
+------------------+------------+
| p2020_2021 | 3 |
| p2022 | 2 |
| p2023 | 2 |
| p2024 | 1 |
| pFuture | 0 |
+------------------+------------+
Durch die Verwendung der ALTER TABLE
-Anweisung mit verschiedenen Klauseln können Sie Ihre Partitionen leicht neu organisieren, um Ihren sich ändernden Datenverwaltungsanforderungen gerecht zu werden.