rodziny kolumn

rodzina kolumn to grupa kolumn w tabeli, które są przechowywane jako pojedyncza para klucz-wartość w bazowym magazynie klucz-wartość. Rodziny kolumn zmniejszają liczbę kluczy przechowywanych w magazynie klucz-wartość, co poprawia wydajność operacji INSERT, UPDATE i DELETE.

ta strona wyjaśnia, w jaki sposób CockroachDB porządkuje kolumny w rodziny, a także przypadki, w których można ręcznie nadpisać domyślne zachowanie.

indeksy wtórne respektują definicje rodziny kolumn stosowane do tabel. Podczas definiowania indeksu wtórnego, CockroachDB rozbija pary klucz-wartość indeksu wtórnego na rodziny kolumn, zgodnie z konfiguracjami rodziny i przechowywanych kolumn.

zachowanie domyślne

gdy tworzona jest tabela, wszystkie kolumny są przechowywane jako Pojedyncza rodzina kolumn.

to domyślne podejście zapewnia wydajne przechowywanie wartości klucza i wydajność w większości przypadków. Jednak gdy często aktualizowane kolumny są grupowane z rzadko aktualizowanymi kolumnami, rzadko aktualizowane kolumny są przepisywane przy każdej aktualizacji. Zwłaszcza, gdy rzadko aktualizowane kolumny są duże, bardziej wydajne jest dzielenie ich na odrębną rodzinę.

sterowanie ręczne

Przypisywanie rodzin kolumn podczas tworzenia tabeli

aby ręcznie przypisać rodzinę kolumn podczas tworzenia tabeli, użyj słowa kluczowego FAMILY.

na przykład, załóżmy, że chcemy utworzyć tabelę, aby przechowywać niezmienny obiekt blob danych (data BYTES) z ostatnio dostępnym znacznikiem czasu (last_accessed TIMESTAMP). Ponieważ wiemy, że obiekt blob danych nigdy nie zostanie zaktualizowany, używamy słowa kluczowego FAMILY, aby podzielić go na osobną rodzinę kolumn:

icon / buttons / copy
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
ikona / przyciski / Kopiuj
> SHOW CREATE test;

Przypisywanie rodzin kolumn podczas dodawania kolumn

podczas korzystania z instrukcji ALTER TABLE .. ADD COLUMN, aby dodać kolumnę do tabeli, można przypisać kolumnę do nowej lub istniejącej rodziny kolumn.

  • Użyj słowa kluczowego CREATE FAMILY, aby przypisać nową kolumnę do nowej rodziny. Na przykład, w poniższym przykładzie dodamy kolumnę data2 BYTES do powyższej tabeli test i przypiszemy ją do nowej rodziny kolumn:
ikona / przyciski / Kopiuj
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • Użyj słowa kluczowego FAMILY, aby przypisać nową kolumnę do istniejącej rodziny. Na przykład, w poniższym przykładzie dodamy kolumnę name STRING do powyższej tabeli test i przypiszemy ją do rodziny f1:
ikona / przyciski / Kopiuj
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • Użyj słowa kluczowego CREATE IF NOT EXISTS FAMILY, aby przypisać nową kolumnę do istniejącej rodziny lub, jeśli rodzina nie istnieje, do nowej rodziny. Na przykład, poniższy przykład przypisze nową kolumnę do istniejącej rodziny f1; jeśli ta rodzina nie istnieje, utworzy nową rodzinę i przypisze do niej kolumnę:
ikona / przyciski / Kopiuj
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • jeśli kolumna zostanie dodana do tabeli, a rodzina nie zostanie określona, zostanie dodana do pierwszej rodziny kolumn. Na przykład, poniższe polecenie doda nową kolumnę do rodziny f1, ponieważ jest to pierwsza rodzina kolumn:
icon / buttons / copy
 > ALTER TABLE test ADD COLUMN last_name STRING;

  • CREATE TABLE
  • ADD COLUMN
  • inne polecenia SQL

czy ta strona była pomocna?

Tak Nie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.