famílias de colunas

uma família de colunas é um grupo de colunas em uma tabela que são armazenados como um único par de valores-chave na loja de valores-chave subjacente. As famílias de colunas reduzem o número de chaves armazenadas na loja do valor-chave, resultando em um melhor desempenho durante as operações INSERT, UPDATE e DELETE.

esta página explica como o CockroachDB organiza as colunas em famílias, bem como os casos em que poderá querer sobrepor manualmente o comportamento por omissão.

os índices secundários respeitam as definições da família de colunas aplicadas aos quadros. Quando você define um índice secundário, CockroachDB quebra os pares de códigos de índice secundário em grupos de colunas, de acordo com a família e configurações de colunas armazenadas.

comportamento padrão

quando uma tabela é criada, todas as colunas são armazenadas como uma única família de colunas.

esta abordagem por defeito garante um armazenamento e desempenho eficientes na maioria dos casos. No entanto, quando as colunas frequentemente atualizadas são agrupadas com colunas raramente atualizadas, as colunas raramente atualizadas são, no entanto, reescritas em cada atualização. Especialmente quando as colunas raramente atualizadas são grandes, é mais performante dividi-las em uma família distinta.

manual override

Cign column families on table creation

To manually assign a column family on table creation, use the FAMILY keyword.

por exemplo, digamos que queremos criar uma tabela para armazenar uma bolha imutável de dados (data BYTES) com um último timestamp acessado (last_accessed TIMESTAMP). Porque sabemos que o blob de dados nunca será atualizado, usamos o FAMILY palavra-chave para quebrá-lo em uma coluna separada da família:

ícones/botões/cópia
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
ícones/botões/cópia
> SHOW CREATE test;

Atribuir coluna famílias, quando a adição de colunas

Ao usar o ALTER TABLE .. ADD COLUMN instrução para adicionar uma coluna a uma tabela, você pode atribuir a coluna para um novo ou existente coluna de família.

  • Use a palavra-chave CREATE FAMILY para atribuir uma nova coluna a uma nova família. Por exemplo, o seguinte seria adicionar um data2 BYTES coluna test tabela acima e atribuí-lo a uma nova coluna de família:
ícones/botões/cópia
 > ALTER TABLE test ADD COLUMN data2 BYTES CREATE FAMILY f3;
  • Use o FAMILY palavra-chave para atribuir uma nova coluna para um familiar existente. Por exemplo, o seguinte seria adicionar um name STRING coluna test tabela acima e atribuir à família f1:
ícones/botões/cópia
 > ALTER TABLE test ADD COLUMN name STRING FAMILY f1;
  • Use o CREATE IF NOT EXISTS FAMILY palavra-chave para atribuir uma nova coluna para um familiar existente ou, se a família não existe, para uma nova família. Por exemplo, o seguinte seria atribuir a nova coluna para o f1 família; se a família não existir, criar uma nova família e atribuir a coluna para ele:
ícones/botões/cópia
 > ALTER TABLE test ADD COLUMN name STRING CREATE IF NOT EXISTS FAMILY f1;
  • Se uma coluna é adicionada a uma tabela e a família não for especificado, ele será adicionado para a primeira coluna com a família. Por exemplo, o seguinte adicionaria a nova coluna à família f1, uma vez que esta é a primeira coluna da família:
ícones/botões/cópia
 > ALTER TABLE test ADD COLUMN last_name STRING;

Veja também

  • CREATE TABLE
  • ADD COLUMN
  • Outras Instruções SQL

esta página Foi útil?

Sim Não

Deixe uma resposta

O seu endereço de email não será publicado.