kolom Families
een kolomfamilie is een groep kolommen in een tabel die als één sleutel-waardepaar in het onderliggende sleutel-waardearchief worden opgeslagen. Kolomfamilies verminderen het aantal sleutels dat is opgeslagen in het sleutelwaardearchief, wat resulteert in verbeterde prestaties tijdens operaties INSERT
, UPDATE
en DELETE
.
deze pagina legt uit hoe CockroachDB kolommen organiseert in families en gevallen waarin u het standaardgedrag handmatig wilt overschrijven.
secundaire indexen voldoen aan de kolomfamiliedefinities die op tabellen worden toegepast. Wanneer u een secundaire index te definiëren, CockroachDB breekt de secundaire index sleutel-waarde paren in kolom families, volgens de familie en opgeslagen kolom configuraties.
standaard gedrag
wanneer een tabel wordt gemaakt, worden alle kolommen opgeslagen als een enkele kolomfamilie.
deze standaardbenadering zorgt in de meeste gevallen voor efficiënte opslag en prestaties van sleutelwaarden. Echter, wanneer vaak bijgewerkte kolommen worden gegroepeerd met zelden bijgewerkte kolommen, worden de zelden bijgewerkte kolommen niettemin herschreven op elke update. Vooral wanneer de zelden bijgewerkte kolommen groot zijn, is het beter om ze op te splitsen in een aparte familie.
handmatig overschrijven
kolomfamilies toewijzen bij het aanmaken van een tabel
gebruik het FAMILY
sleutelwoord om handmatig een kolomfamilie toe te wijzen bij het aanmaken van een tabel.
bijvoorbeeld, laten we zeggen dat we een tabel willen maken om een onveranderlijke blob van gegevens op te slaan (data BYTES
) met een laatst gebruikte tijdstempel (last_accessed TIMESTAMP
). Omdat we weten dat de blob-gegevens zullen nooit worden bijgewerkt, gebruiken we de FAMILY
zoekwoord in te breken in een aparte kolom familie:
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
> SHOW CREATE test;
Toewijzen kolom gezinnen bij het toevoegen van kolommen
Bij het gebruik van de ALTER TABLE .. ADD COLUMN
verklaring van een kolom toevoegen aan een tabel, kunt u de kolom om een bestaande of een nieuwe kolom familie.
- gebruik het
CREATE FAMILY
sleutelwoord om een nieuwe kolom toe te wijzen aan een nieuwe familie. Het volgende zou bijvoorbeeld een kolomdata2 BYTES
toevoegen aan de bovenstaande tabeltest
en deze toewijzen aan een nieuwe kolomfamilie:
> ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
- gebruik het
FAMILY
sleutelwoord om een nieuwe kolom toe te wijzen aan een bestaande familie. Het volgende zou bijvoorbeeld een kolomname STRING
toevoegen aan de bovenstaande tabeltest
en deze toewijzen aan een familief1
:
> ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
- gebruik het
CREATE IF NOT EXISTS FAMILY
sleutelwoord om een nieuwe kolom toe te wijzen aan een bestaande familie of, als de familie niet bestaat, aan een nieuwe familie. Bijvoorbeeld, het volgende zou de nieuwe kolom toewijzen aan de bestaandef1
familie; als die familie niet bestond, zou het een nieuwe familie maken en de kolom eraan toewijzen:
> ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
- als een kolom aan een tabel wordt toegevoegd en de familie niet is opgegeven, wordt deze toegevoegd aan de eerste kolomfamilie. Het volgende zou bijvoorbeeld de nieuwe kolom toevoegen aan de
f1
– familie, aangezien dat de eerste kolomfamilie is:
> ALTER TABLE test ADD COLUMN last_name STRING;
zie ook
CREATE TABLE
ADD COLUMN
- andere SQL Statements
Was deze pagina nuttig?
Ja Nee