kolonne familier

en kolonnefamilie er en gruppe af kolonner i en tabel, der er gemt som et enkelt nøgleværdipar i den underliggende nøgleværdibutik. Kolonnefamilier reducerer antallet af nøgler, der er gemt i nøgleværdilageret, hvilket resulterer i forbedret ydeevne under operationer INSERT, UPDATE og DELETE.

denne side forklarer, hvordan Kakerlakdb organiserer kolonner i familier samt tilfælde, hvor du måske manuelt vil tilsidesætte standardadfærden.

sekundære indekser respekterer kolonnefamiliedefinitionerne anvendt på tabeller. Når du definerer et sekundært indeks, bryder Kakerlakdb de sekundære indeksnøgleværdipar i kolonnefamilier i henhold til familie-og lagrede kolonnekonfigurationer.

standardadfærd

når en tabel oprettes, gemmes alle kolonner som en enkelt kolonnefamilie.

denne standardmetode sikrer effektiv nøgleværdiopbevaring og ydeevne i de fleste tilfælde. Men når ofte opdaterede kolonner er grupperet med sjældent opdaterede kolonner, bliver de sjældent opdaterede kolonner ikke desto mindre omskrevet på hver opdatering. Især når de sjældent opdaterede kolonner er store, er det mere effektivt at opdele dem i en særskilt familie.

manuel tilsidesættelse

Tildel kolonnefamilier ved oprettelse af tabel

hvis du manuelt vil tildele en kolonnefamilie ved oprettelse af tabel, skal du bruge nøgleordet FAMILY.

lad os for eksempel sige, at vi vil oprette en tabel til at gemme en uforanderlig klat af data (data BYTES) med et sidst tilgængeligt tidsstempel (last_accessed TIMESTAMP). Fordi vi ved, at klat af data aldrig bliver opdateret, bruger vi nøgleordet FAMILY til at opdele det i en separat kolonnefamilie:

ikon / knapper / kopi
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
ikon / knapper / kopi
> SHOW CREATE test;

Tildel kolonnefamilier når du tilføjer kolonner

når du bruger sætningen ALTER TABLE .. ADD COLUMN til at føje en kolonne til en tabel, kan du tildele kolonnen til en ny eller eksisterende kolonnefamilie.

  • brug nøgleordet CREATE FAMILY til at tildele en ny kolonne til en ny familie. For eksempel vil følgende tilføje en data2 BYTES kolonne til test tabellen ovenfor og tildele den til en ny kolonnefamilie:
ikon / knapper / kopi
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • brug nøgleordet FAMILY til at tildele en ny kolonne til en eksisterende familie. For eksempel vil følgende tilføje en name STRING kolonne til test tabellen ovenfor og tildele den til familie f1:
ikon / knapper / kopi
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • brug nøgleordet CREATE IF NOT EXISTS FAMILY til at tildele en ny kolonne til en eksisterende familie eller, hvis familien ikke findes, til en ny familie. For eksempel ville følgende tildele den nye kolonne til den eksisterende f1 familie; hvis den familie ikke eksisterede, ville den oprette en ny familie og tildele kolonnen til den:
ikon / knapper / kopi
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • hvis en kolonne føjes til en tabel, og familien ikke er angivet, føjes den til den første kolonnefamilie. For eksempel vil følgende tilføje den nye kolonne til familien f1, da det er den første kolonnefamilie:
ikon / knapper / kopi
 > ALTER TABLE test ADD COLUMN last_name STRING;

Se også

  • CREATE TABLE
  • ADD COLUMN
  • andre KKL-erklæringer

var denne side nyttig?

Ja Nej

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.