Famiglie di colonne

Una famiglia di colonne è un gruppo di colonne in una tabella memorizzate come una singola coppia chiave-valore nell’archivio chiave-valore sottostante. Le famiglie di colonne riducono il numero di chiavi memorizzate nell’archivio chiave-valore, con conseguente miglioramento delle prestazioni durante le operazioni INSERT, UPDATE e DELETE.

Questa pagina spiega come CockroachDB organizza le colonne in famiglie e casi in cui è possibile sovrascrivere manualmente il comportamento predefinito.

Gli indici secondari rispettano le definizioni della famiglia di colonne applicate alle tabelle. Quando si definisce un indice secondario, CockroachDB interrompe le coppie chiave-valore dell’indice secondario in famiglie di colonne, in base alla famiglia e alle configurazioni delle colonne memorizzate.

Comportamento predefinito

Quando viene creata una tabella, tutte le colonne vengono memorizzate come una singola famiglia di colonne.

Questo approccio predefinito garantisce un’archiviazione e prestazioni chiave-valore efficienti nella maggior parte dei casi. Tuttavia, quando le colonne aggiornate frequentemente sono raggruppate con colonne aggiornate raramente, le colonne aggiornate raramente vengono comunque riscritte ad ogni aggiornamento. Soprattutto quando le colonne raramente aggiornate sono grandi, è più performante dividerle in una famiglia distinta.

Comando manuale

Assegna famiglie di colonne alla creazione di tabelle

Per assegnare manualmente una famiglia di colonne alla creazione di tabelle, utilizzare la parola chiave FAMILY.

Ad esempio, diciamo che vogliamo creare una tabella per memorizzare un blob immutabile di dati (data BYTES) con un timestamp ultimo accesso (last_accessed TIMESTAMP). Perché sappiamo che il blob di dati non aggiornati, usiamo il FAMILY parola chiave per rompere in una colonna separata famiglia:

icone/pulsanti/copia
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
icona/pulsanti/copia
> SHOW CREATE test;

Assegnare colonna famiglie quando l’aggiunta di colonne

Quando si utilizza il ALTER TABLE .. ADD COLUMN istruzione per aggiungere una colonna a una tabella, è possibile assegnare la colonna di un nuovo o esistente colonna di famiglia.

  • Utilizzare la parola chiave CREATE FAMILY per assegnare una nuova colonna a una nuova famiglia. Ad esempio, quanto segue aggiungerebbe una colonna data2 BYTES alla tabella test sopra e la assegnerebbe a una nuova famiglia di colonne:
icona / pulsanti / copia
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • Utilizzare la parola chiave FAMILY per assegnare una nuova colonna a una famiglia esistente. Ad esempio, quanto segue aggiungerebbe una colonna name STRING alla tabella test sopra e la assegnerebbe alla famiglia f1:
icona / pulsanti / copia
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • Utilizzare la parola chiave CREATE IF NOT EXISTS FAMILY per assegnare una nuova colonna a una famiglia esistente o, se la famiglia non esiste, a una nuova famiglia. Per esempio, il seguente assegnare la nuova colonna esistente f1 famiglia, se la famiglia non esiste, si verrebbe a creare una nuova famiglia e di assegnare l’articolo:
icona/pulsanti/copia
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • Se una colonna è aggiunto a una tabella e la famiglia non è specificato, verrà aggiunto alla prima colonna della famiglia. Ad esempio, quanto segue aggiungerebbe la nuova colonna alla famiglia f1, poiché questa è la prima famiglia di colonne:
icone/pulsanti/copia
 > ALTER TABLE test ADD COLUMN last_name STRING;

Vedi anche

  • CREATE TABLE
  • ADD COLUMN
  • Altre Istruzioni SQL

questa pagina È utile?

No

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.