Oszlopcsaládok

az oszlopcsalád egy táblázat oszlopainak csoportja, amelyeket egyetlen kulcs-érték párként tárolnak az alapul szolgáló kulcs-érték tárolóban. Az oszlopcsaládok csökkentik a kulcs – érték tárolóban tárolt kulcsok számát, ami jobb teljesítményt eredményez a INSERT, UPDATE és DELETE műveletek során.

ez az oldal bemutatja, hogy a CockroachDB hogyan rendezi az oszlopokat családokba, valamint azokat az eseteket, amikor manuálisan felül kell írni az alapértelmezett viselkedést.

a másodlagos indexek tiszteletben tartják a táblákra alkalmazott oszlopcsalád-meghatározásokat. Másodlagos index meghatározásakor a CockroachDB a másodlagos index kulcs-érték párokat oszlopcsaládokra bontja a család és a tárolt oszlopkonfigurációk szerint.

alapértelmezett viselkedés

táblázat létrehozásakor az összes oszlop egyetlen oszlopcsaládként kerül tárolásra.

ez az alapértelmezett megközelítés a legtöbb esetben hatékony kulcs-érték tárolást és teljesítményt biztosít. Ha azonban a gyakran frissített oszlopokat ritkán frissített oszlopokkal csoportosítják, a ritkán frissített oszlopokat ennek ellenére minden frissítésnél átírják. Különösen akkor, ha a ritkán frissített oszlopok nagyok, hatékonyabb, ha külön családba osztják őket.

kézi felülírás

oszlopcsaládok hozzárendelése a táblázat létrehozásakor

a táblázat létrehozásakor oszlopcsalád kézi hozzárendeléséhez használja a FAMILY kulcsszót.

tegyük fel például, hogy létre akarunk hozni egy táblázatot, amely egy megváltoztathatatlan adatblokkot (data BYTES) tárol egy utoljára elérhető időbélyeggel (last_accessed TIMESTAMP). Mivel tudjuk, hogy az adatok blobja soha nem frissül, a FAMILY kulcsszóval külön oszlopcsaládra bontjuk:

ikon/gombok / másolás
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
ikon / gombok / másolás
> SHOW CREATE test;

Oszlopcsaládok hozzárendelése

oszlopok hozzáadásakor ha a ALTER TABLE .. ADD COLUMN utasítással oszlopot szeretne hozzáadni egy táblához, akkor az oszlopot új vagy meglévő oszlopcsaládhoz rendelheti.

  • a CREATE FAMILY kulcsszóval Rendeljen új oszlopot egy új családhoz. A következő például egy data2 BYTES oszlopot ad hozzá a fenti test táblázathoz, majd egy új oszlopcsaládhoz rendeli:
ikon / gombok / másolás
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • a FAMILY kulcsszóval új oszlopot rendelhet egy meglévő családhoz. A következő például egy name STRING oszlopot ad hozzá a fenti test táblázathoz, és hozzárendeli a családhoz f1:
ikon / gombok / másolás
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • a CREATE IF NOT EXISTS FAMILY kulcsszóval új oszlopot rendelhet egy meglévő családhoz, vagy ha a család nem létezik, akkor egy új családhoz. Például a következő hozzárendeli az új oszlopot a meglévő f1 családhoz; ha ez a család nem létezik, akkor létrehoz egy új családot, és hozzárendeli az oszlopot:
ikon / gombok / másolás
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • ha egy oszlop hozzá van adva egy táblához, de a család nincs megadva,akkor az első oszlopcsaládba kerül. A következő például hozzáadja az új oszlopot a f1 családhoz, mivel ez az első oszlopcsalád:
ikon/gombok / másolás
 > ALTER TABLE test ADD COLUMN last_name STRING;

Lásd még

  • CREATE TABLE
  • ADD COLUMN
  • Egyéb SQL utasítások

hasznos volt ez az oldal?

Igen Nem

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.