Kolumniperheet
sarakeperhe on taulukon sarakkeiden ryhmä, joka tallennetaan yhtenä avainarvoparina taustalla olevaan avainarvosäilöön. Sarakkeen perheet vähentävät avainarvosäilöön tallennettujen avainten määrää, mikä parantaa suorituskykyä INSERT
, UPDATE
ja DELETE
operaatioissa.
tällä sivulla kerrotaan, miten CockroachDB järjestää sarakkeet perheisiin sekä tapauksiin, joissa haluat ehkä ohittaa oletuskäyttäytymisen manuaalisesti.
toissijaiset indeksit noudattavat taulukoihin sovellettavia sarakeperheen määritelmiä. Kun määrität toissijaisen indeksin, CockroachDB jakaa toissijaiset indeksin avainarvoparit sarakeperheiksi perheen ja tallennettujen sarakekokoonpanojen mukaan.
oletuskäyttäytyminen
kun taulukko luodaan, kaikki sarakkeet tallennetaan yhtenä sarakeperheenä.
tämä oletusmenetelmä takaa avainarvon tehokkaan tallennuksen ja suorituskyvyn useimmissa tapauksissa. Kun usein päivitetyt sarakkeet ryhmitellään harvoin päivitettyihin sarakkeisiin, harvoin päivitetyt sarakkeet kuitenkin kirjoitetaan uudelleen jokaisessa päivityksessä. Varsinkin kun harvoin päivitetyt palstat ovat suuria, on performanttisempaa jakaa ne erilliseen perheeseen.
manuaalinen ohitus
määritä taulukon luontiin sarakeperheet
jos haluat määrittää taulukon luontiin sarakeperheen manuaalisesti, käytä FAMILY
avainsanaa.
esimerkiksi, sanotaan, että haluamme luoda taulukon, johon voidaan tallentaa muuttumaton tietomöykky (data BYTES
), jossa on viimeksi käytetty aikaleima (last_accessed TIMESTAMP
). Koska tiedämme, että tietojen möykky ei koskaan päivity, käytämme FAMILY
avainsanaa murtaaksemme sen erilliseksi sarakeperheeksi:
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
> SHOW CREATE test;
Määritä sarakeperheet lisättäessä sarakkeita
kun käytät ALTER TABLE .. ADD COLUMN
lauseketta sarakkeen lisäämiseksi taulukkoon, voit liittää sarakkeen uuteen tai olemassa olevaan sarakeperheeseen.
- käytä
CREATE FAMILY
– hakusanaa osoittaaksesi uuden sarakkeen uudelle perheelle. Esimerkiksi seuraava lisäisidata2 BYTES
sarakkeen yllä olevaantest
taulukkoon ja liittäisi sen uuteen sarakeperheeseen:
> ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
- hakusanalla
FAMILY
voit määrittää uuden sarakkeen olemassa olevalle perheelle. Esimerkiksi seuraava lisäisiname STRING
sarakkeen yllä olevaantest
taulukkoon ja liittäisi sen perheeseenf1
:
> ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
- hakusanalla
CREATE IF NOT EXISTS FAMILY
voit määrittää uuden sarakkeen olemassa olevalle perheelle tai, jos perhettä ei ole olemassa, uudelle perheelle. Esimerkiksi seuraava osoittaisi uuden sarakkeen olemassa olevallef1
suvulle; jos kyseistä sukua ei olisi olemassa, se loisi uuden perheen ja antaisi sarakkeen sille:
> ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
- jos taulukkoon lisätään sarake eikä perhettä ole määritelty, se lisätään ensimmäiseen sarakeperheeseen. Esimerkiksi seuraava lisäisi uuden sarakkeen
f1
– sukuun, koska se on ensimmäinen sarakesuku:
> ALTER TABLE test ADD COLUMN last_name STRING;
Katso myös
CREATE TABLE
ADD COLUMN
- muut SQL-lauseet
oliko tästä sivusta apua?
Kyllä Ei