Spaltenfamilien

Eine Spaltenfamilie ist eine Gruppe von Spalten in einer Tabelle, die als einzelnes Schlüssel-Wert-Paar im zugrunde liegenden Schlüssel-Wert-Speicher gespeichert werden. Spaltenfamilien reduzieren die Anzahl der im Schlüsselwertspeicher gespeicherten Schlüssel, was zu einer verbesserten Leistung bei INSERT-, UPDATE – und DELETE -Vorgängen führt.

Auf dieser Seite wird erläutert, wie CockroachDB Spalten in Familien organisiert und in welchen Fällen Sie das Standardverhalten möglicherweise manuell überschreiben möchten.

Sekundäre Indizes berücksichtigen die Spaltenfamiliendefinitionen, die auf Tabellen angewendet werden. Wenn Sie einen Sekundärindex definieren, unterteilt CockroachDB die Schlüssel-Wert-Paare des Sekundärindex entsprechend der Familie und den gespeicherten Spaltenkonfigurationen in Spaltenfamilien.

Standardverhalten

Beim Erstellen einer Tabelle werden alle Spalten als einzelne Spaltenfamilie gespeichert.

Dieser Standardansatz gewährleistet in den meisten Fällen eine effiziente Schlüsselwertspeicherung und -leistung. Wenn jedoch häufig aktualisierte Spalten mit selten aktualisierten Spalten gruppiert werden, werden die selten aktualisierten Spalten dennoch bei jeder Aktualisierung neu geschrieben. Besonders wenn die selten aktualisierten Spalten groß sind, ist es performanter, sie in eine eigene Familie aufzuteilen.

Manuelle Überschreibung

Zuweisen von Spaltenfamilien bei der Tabellenerstellung

Verwenden Sie das Schlüsselwort FAMILY, um eine Spaltenfamilie bei der Tabellenerstellung manuell zuzuweisen.

Angenommen, wir möchten eine Tabelle zum Speichern eines unveränderlichen Datenblobs (data BYTES) mit einem Zeitstempel des letzten Zugriffs (last_accessed TIMESTAMP) erstellen. Da wir wissen, dass der Datenblob niemals aktualisiert wird, verwenden wir das Schlüsselwort FAMILY , um ihn in eine separate Spaltenfamilie aufzuteilen:

icon/buttons/copy
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
symbol / Schaltflächen / kopieren
> SHOW CREATE test;

Zuweisen von Spaltenfamilien beim Hinzufügen von Spalten

Wenn Sie die Anweisung ALTER TABLE .. ADD COLUMN zum Hinzufügen einer Spalte zu einer Tabelle verwenden, können Sie die Spalte einer neuen oder vorhandenen Spaltenfamilie zuweisen.

  • Verwenden Sie das Schlüsselwort CREATE FAMILY, um einer neuen Familie eine neue Spalte zuzuweisen. Beispielsweise würde im Folgenden der obigen Tabelle test eine data2 BYTES -Spalte hinzugefügt und einer neuen Spaltenfamilie zugewiesen:
symbol / Schaltflächen / kopieren
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • Verwenden Sie das Schlüsselwort FAMILY, um einer vorhandenen Familie eine neue Spalte zuzuweisen. Beispielsweise würde im Folgenden der obigen Tabelle test eine name STRING -Spalte hinzugefügt und der Familie zugewiesen f1:
symbol / Schaltflächen / kopieren
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • Verwenden Sie das Schlüsselwort CREATE IF NOT EXISTS FAMILY, um einer vorhandenen Familie oder, falls die Familie nicht vorhanden ist, einer neuen Familie eine neue Spalte zuzuweisen. Wenn diese Familie nicht vorhanden ist, wird eine neue Familie erstellt und die Spalte zugewiesen:
symbol / Schaltflächen / kopieren
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • Wenn eine Spalte zu einer Tabelle hinzugefügt wird und die Familie nicht angegeben ist, wird sie zur ersten Spaltenfamilie hinzugefügt. Im Folgenden wird beispielsweise die neue Spalte zur f1 -Familie hinzugefügt, da dies die erste Spaltenfamilie ist:
Symbol/ Schaltflächen/kopieren
 > ALTER TABLE test ADD COLUMN last_name STRING;

Siehe auch

  • CREATE TABLE
  • ADD COLUMN
  • Andere SQL-Anweisungen

War diese Seite hilfreich?

Ja Nein

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.