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:
> CREATE TABLE test ( id INT PRIMARY KEY, last_accessed TIMESTAMP, data BYTES, FAMILY f1 (id, last_accessed), FAMILY f2 (data));
> 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 umdata2 BYTES
colunatest
tabela acima e atribuí-lo a uma nova coluna de família:
> 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 umname STRING
colunatest
tabela acima e atribuir à famíliaf1
:
> 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 of1
família; se a família não existir, criar uma nova família e atribuir a coluna para ele:
> 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:
> 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