[+/-]
MySQL 5.1 bietet eine Reihe von Möglichkeiten, um
partitionierte Tabellen zu modifizieren. Man kann Partitionen
hinzufügen, löschen, umdefinieren, zusammenführen oder
aufspalten. Alle diese Aktionen werden mit den
Partitionierungserweiterungen des ALTER
TABLE
-Befehls ausgeführt (zur Syntax siehe
Abschnitt 13.1.2, „ALTER TABLE
“). Darüber hinaus können Sie sich
Informationen über partitionierte Tabellen und Partitionen
beschaffen. Diese Themen werden in den nachfolgenden Abschnitten
behandelt.
Informationen über die Partitionsverwaltung in
RANGE
- oder
LIST
-partitionierten Tabellen finden Sie
unter Abschnitt 17.3.1, „Verwaltung von RANGE
- und
LIST
-Partitionen“.
Um die Verwaltung von HASH
- und
KEY
-Partitionen geht es in
Abschnitt 17.3.2, „Verwaltung von HASH
- und
KEY
-Partitionen“.
Mechanismen, mit denen Sie in MySQL 5.1 Informationen über partitionierte Tabellen and Partitionen erlangen können, werden in Abschnitt 17.3.4, „Abruf von Informationen über Partitionen“, vorgestellt.
Wartungsoperationen auf Partitionen werden in Abschnitt 17.3.3, „Wartung von Partitionen“, beschrieben.
Hinweis: In MySQL 5.1 müssen alle Partitionen einer partitionierten Tabelle die gleiche Anzahl von Teilpartitionen haben. Nach dem Anlegen der Tabelle ist es nicht mehr möglich, die Teilpartitionierung zu ändern.
Die Anweisung ALTER TABLE ... PARTITION BY ...
funktioniert seit MySQL 5.1.6; zuvor in MySQL 5.1 wurde ihre
Syntax zwar als gültig akzeptiert, aber Auswirkungen hatte sie
keine.
Um das Partitionierungsschema einer Tabelle zu ändern, müssen
Sie nur dem ALTER TABLE
-Befehl eine
partition_options
-Klausel hinzufügen.
Diese Klausel hat dieselbe Syntax, die auch in CREATE
TABLE
zur Erstellung einer partitionierten Tabelle
verwendet wird, und beginnt immer mit den Schlüsselwörtern
PARTITION BY
. Angenommen, Sie haben eine nach
Bereichen partitionierte Tabelle mit folgender CREATE
TABLE
-Anweisung angelegt:
CREATE TABLE trb3 (id INT, name VARCHAR(50), purchased DATE) PARTITION BY RANGE( YEAR(purchased) ) ( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (1995), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN (2005) );
Um aus dieser Tabelle eine schlüsselpartitionierte Tabelle mit
zwei Partitionen zu machen, wobei der Wert der Spalte
id
die Grundlage für den Schlüssel liefert,
können Sie folgende Anweisung geben:
ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;
Auf die Struktur der Tabelle hat dies dieselben Auswirkungen wie
eine Löschung und Rekonstruktion mit CREATE TABLE trb3
PARTITION BY KEY(id) PARTITIONS 2;
.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.