Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Primärschlüssel in Aurora DSQL
In Aurora DSQL ist ein Primärschlüssel ein Feature, mit dem Tabellendaten physisch organisiert werden. Es ähnelt der CLUSTER-Operation in PostgreSQL oder einem geclusterten Index in anderen Datenbanken. Wenn Sie einen Primärschlüssel definieren, erstellt Aurora DSQL einen Index mit allen Spalten in der Tabelle. Die Primärschlüsselstruktur in Aurora DSQL gewährleistet eine effiziente Datenzugriffs- und Verwaltungsstrategie.
Datenstruktur und Speicherung
Wenn Sie einen Primärschlüssel definieren, speichert Aurora DSQL Tabellendaten in der Reihenfolge der Primärschlüssel. Diese indexorganisierte Struktur ermöglicht es, bei einer Primärschlüsselabfrage alle Spaltenwerte direkt abzurufen, anstatt wie bei einem herkömmlichen B-Baum-Index einem Zeiger zur eigentlichen Datenzeile zu folgen. Im Gegensatz zur CLUSTER-Operation in PostgreSQL, die Daten nur einmalig reorganisiert, hält Aurora DSQL diese Ordnung automatisch und fortlaufend aufrecht. Dieser Ansatz verbessert die Leistung von Abfragen, die auf den Primärschlüsselzugriff angewiesen sind.
Aurora DSQL verwendet den Primärschlüssel außerdem, um für jede Zeile in Tabellen und Indizes einen clusterweit eindeutigen Schlüssel zu generieren. Dieser eindeutige Schlüssel bildet die Grundlage für das verteilte Datenmanagement: Er ermöglicht die automatische Partitionierung von Daten über mehrere Knoten hinweg, wobei skalierbaren Speicherung und hohe Parallelität unterstützt wird. Dadurch trägt die Primärschlüsselstruktur wesentlich dazu bei, dass Aurora DSQL automatisch skaliert und gleichzeitige Workloads effizient verwaltet.
Richtlinien für die Auswahl eines Primärschlüssels
Beachten Sie bei der Auswahl und Verwendung eines Primärschlüssels in Aurora DSQL die folgenden Richtlinien:
-
Definieren Sie einen Primärschlüssel, wenn Sie eine Tabelle erstellen. Diesen Schlüssel können Sie später nicht mehr ändern und können auch keinen neuen Primärschlüssel hinzufügen. Der Primärschlüssel wird Teil des clusterweiten Schlüssels, der für die Datenpartitionierung und die automatische Skalierung des Schreibdurchsatzes verwendet wird. Wenn Sie keinen Primärschlüssel angeben, weist Aurora DSQL eine versteckte synthetische ID zu.
-
Für Tabellen mit hohem Schreibaufkommen sollten monoton steigende Ganzzahlen nicht als Primärschlüssel verwendet werden. Dies kann zu Leistungseinbußen führen, wenn alle neuen Einfügungen auf eine einzige Partition geleitet werden. Verwenden Sie stattdessen Primärschlüssel mit zufälliger Verteilung, um eine gleichmäßige Verteilung der Schreibvorgänge auf die Speicherpartitionen sicherzustellen.
-
Für Tabellen, die sich selten ändern oder schreibgeschützt sind, können Sie einen aufsteigenden Schlüssel verwenden. Beispiele für aufsteigende Schlüssel sind Zeitstempel oder Sequenznummern. Ein dichter Schlüssel weist viele eng beieinander liegende oder doppelte Werte auf. Ein aufsteigender Schlüssel kann auch dann verwendet werden, wenn er dicht ist, da die Schreibperformance in diesem Fall weniger kritisch ist.
-
Sollte ein vollständiger Tabellenscan Ihre Leistungsanforderungen nicht erfüllen, dann wählen Sie eine effizientere Zugriffsmethode. In den meisten Fällen bedeutet das die Verwendung eines Primärschlüssels, der Ihrem häufigsten Join- und Lookup-Schlüssel in Abfragen entspricht.
-
Die maximale kombinierte Größe der Spalten in einem Primärschlüssel beträgt 1 Kibibyte. Weitere Informationen finden Sie unter Datenbanklimits in Aurora DSQL und Unterstützte Datentypen in Aurora DSQL.
-
Sie können bis zu 8 Spalten in einen Primärschlüssel oder einen Sekundärindex aufnehmen. Weitere Informationen finden Sie unter Datenbanklimits in Aurora DSQL und Unterstützte Datentypen in Aurora DSQL.