T. Por exemplo, uma coluna do tipo Nullable(Int8) pode armazenar valores do tipo Int8, e as linhas que não tiverem um valor armazenarão NULL.
T não pode ser nenhum dos seguintes tipos de dados compostos:
No entanto, tipos de dados compostos podem conter valores do tipo Nullable, por exemplo, Array(Nullable(Int8)) ou Tuple(Nullable(String), Nullable(Int64)).
Um campo do tipo Nullable não pode ser incluído em índices da tabela.
NULL é o valor padrão de qualquer tipo Nullable, salvo especificação em contrário na configuração do servidor ClickHouse.
Recursos de armazenamento
Para armazenar valores do tipoNullable em uma coluna de tabela, o ClickHouse usa um arquivo separado com máscaras NULL, além do arquivo normal com os valores. As entradas no arquivo de máscaras permitem que o ClickHouse diferencie, em cada linha da tabela, entre NULL e o valor padrão do tipo de dado correspondente. Por causa desse arquivo adicional, uma coluna Nullable consome mais espaço de armazenamento do que uma coluna normal semelhante.
Usar
Nullable quase sempre afeta negativamente o desempenho. Tenha isso em mente ao projetar seus bancos de dados.Encontrando NULL
É possível localizar valoresNULL em uma coluna usando a subcoluna null, sem precisar ler a coluna inteira. Ela retorna o byte armazenado da máscara NULL: 0 se o valor correspondente estiver presente e um byte diferente de zero, canonicamente 1, se for NULL. Use isNull quando for necessário obter estritamente 0 ou 1.
Exemplo
Query
Response