Kolonnefamilier

en kolonnefamilie er en gruppe med kolonner i en tabell som er lagret som et enkelt nøkkelverdipar i det underliggende nøkkelverdilageret. Kolonnefamilier reduserer antall nøkler som er lagret i nøkkelverdilageret, noe som resulterer i forbedret ytelse under operasjoner INSERT, UPDATE og DELETE.

Denne siden forklarer hvordan CockroachDB organiserer kolonner i familier, samt tilfeller der du kanskje vil overstyre standard virkemåte manuelt.

Sekundære indekser respekterer kolonnefamiliedefinisjonene som brukes på tabeller. Når du definerer en sekundær indeks, Bryter CockroachDB de sekundære indeksnøkkelverdiparene i kolonnefamilier, i henhold til familien og lagrede kolonnekonfigurasjoner.

Standard virkemåte

når en tabell opprettes, lagres alle kolonnene som en enkelt kolonnefamilie.

denne standardtilnærmingen sikrer effektiv lagring og ytelse av nøkkelverdier i de fleste tilfeller. Men når ofte oppdaterte kolonner er gruppert med sjelden oppdaterte kolonner, blir de sjelden oppdaterte kolonnene likevel omskrevet på hver oppdatering. Spesielt når de sjelden oppdaterte kolonnene er store, er det mer effektivt å dele dem i en distinkt familie.

Manuell overstyring

Tilordne kolonnefamilier ved oppretting av tabell

hvis du vil tilordne en kolonnefamilie manuelt ved oppretting av tabell, bruker du nøkkelordet FAMILY.

la oss for eksempel si at vi vil lage et bord for å lagre en uforanderlig blob av data (data BYTES) med et sist åpnet tidsstempel (last_accessed TIMESTAMP). Fordi vi vet at blokken av data aldri vil bli oppdatert, bruker vi FAMILY søkeordet for å bryte det inn i en egen kolonnefamilie:

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

Tilordne kolonnefamilier når du legger til kolonner

når du bruker ALTER TABLE .. ADD COLUMN – setningen til å legge til en kolonne i en tabell, kan du tilordne kolonnen til en ny eller eksisterende kolonnefamilie.

  • Bruk nøkkelordet CREATE FAMILY til å tilordne en ny kolonne til en ny familie. Følgende vil for eksempel legge til en data2 BYTES – kolonne i tabellen test ovenfor og tilordne den til en ny kolonnefamilie:
ikon / knapper / kopier
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • Bruk nøkkelordet FAMILY til å tilordne en ny kolonne til en eksisterende familie. For eksempel vil følgende legge til en name STRING – kolonne i tabellen test ovenfor og tilordne den til familie f1:
ikon / knapper / kopier
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • Bruk nøkkelordet CREATE IF NOT EXISTS FAMILY til å tilordne en ny kolonne til en eksisterende familie, eller hvis familien ikke finnes, til en ny familie. Følgende vil for eksempel tilordne den nye kolonnen til den eksisterende f1 – familien.:
ikon / knapper / kopier
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • Hvis en kolonne legges til i en tabell og familien ikke er angitt, blir den lagt til i den første kolonnefamilien. Følgende vil for eksempel legge til den nye kolonnen i f1 – familien, siden det er den første kolonnefamilien:
ikon / knapper / kopi
 > ALTER TABLE test ADD COLUMN last_name STRING;

Se også

  • CREATE TABLE
  • ADD COLUMN
  • ANDRE SQL-Setninger

Var denne siden nyttig?

Ja Nei

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.