familii de coloane

o familie de coloane este un grup de coloane dintr-un tabel care sunt stocate ca o singură pereche cheie-valoare în depozitul cheie-valoare subiacent. Familiile de coloane reduc numărul de chei stocate în depozitul de valori cheie, rezultând o performanță îmbunătățită în timpul operațiilor INSERT, UPDATE și DELETE.

această pagină explică modul în care CockroachDB organizează coloane în familii, precum și cazurile în care ați putea dori să suprascrie manual comportamentul implicit.

indexurile secundare respectă definițiile familiei de coloane aplicate tabelelor. Când definiți un index secundar, CockroachDB sparge perechile cheie-valoare index secundar în familii de coloane, în funcție de familie și configurațiile coloanei stocate.

comportament implicit

când este creat un tabel, toate coloanele sunt stocate ca o singură familie de coloane.

această abordare implicită asigură stocarea și performanța eficientă a valorilor cheie în majoritatea cazurilor. Cu toate acestea, atunci când coloanele actualizate frecvent sunt grupate cu coloane rareori actualizate, coloanele rareori actualizate sunt totuși rescrise la fiecare actualizare. Mai ales atunci când coloanele rar actualizate sunt mari, este mai performant să le împărțiți într-o familie distinctă.

suprascriere manuală

atribuirea familiilor de coloane la crearea tabelului

pentru a atribui manual o familie de coloane la crearea tabelului, utilizați cuvântul cheie FAMILY.

de exemplu, să presupunem că dorim să creăm un tabel pentru a stoca o pată de date imuabilă (data BYTES) cu o ultimă marcă de timp accesată (last_accessed TIMESTAMP). Pentru că știm că blob de date nu va fi actualizat, vom folosi FAMILY cuvânt cheie pentru a rupe într-o familie coloană separată:

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

atribuirea familiilor de coloane atunci când adăugați coloane

când utilizați instrucțiunea ALTER TABLE .. ADD COLUMN pentru a adăuga o coloană la un tabel, puteți atribui coloana unei familii de coloane noi sau existente.

  • utilizați cuvântul cheie CREATE FAMILY pentru a atribui o nouă coloană unei noi familii. De exemplu, următoarele ar adăuga o coloană data2 BYTES la tabelul test de mai sus și ar atribui-o unei noi familii de coloane:
icon / Butoane / copie
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • utilizați cuvântul cheie FAMILY pentru a atribui o coloană nouă unei familii existente. De exemplu, următoarele ar adăuga o coloană name STRING la tabelul test de mai sus și ar atribui-o familiei f1:
icon / Butoane / copie
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • utilizați cuvântul cheie CREATE IF NOT EXISTS FAMILY pentru a atribui o coloană nouă unei familii existente sau, dacă familia nu există, unei noi familii. De exemplu, următoarele ar atribui noua coloană familiei f1 existente; dacă acea familie nu ar exista, ar crea o nouă familie și i-ar atribui coloana:
icon / Butoane / copie
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • dacă o coloană este adăugată la un tabel și familia nu este specificată, aceasta va fi adăugată la prima familie de coloane. De exemplu, următoarele ar adăuga noua coloană la familia f1, deoarece aceasta este prima familie de coloane:
icon / Butoane / copie
 > ALTER TABLE test ADD COLUMN last_name STRING;

Vezi și

  • CREATE TABLE
  • ADD COLUMN
  • alte instrucțiuni SQL

a fost utilă această pagină?

Da Nu

Lasă un răspuns

Adresa ta de email nu va fi publicată.