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:
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
> 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 egydata2 BYTES
oszlopot ad hozzá a fentitest
táblázathoz, majd egy új oszlopcsaládhoz rendeli:
> 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 egyname STRING
oszlopot ad hozzá a fentitest
táblázathoz, és hozzárendeli a családhozf1
:
> 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:
> 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:
> 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