Altera a representação interna de outros tipos de dados para usar codificação por dicionário.
Sintaxe
LowCardinality(data_type)Parâmetros
data_type— String, FixedString, Date, DateTime e números, com exceção de Decimal.LowCardinalitynão é eficiente para alguns tipos de dados; consulte a descrição da configuração allow_suspicious_low_cardinality_types.
Descrição
LowCardinality é uma superestrutura que altera o método de armazenamento dos dados e as regras de processamento. O ClickHouse aplica codificação por dicionário às colunas LowCardinality. Trabalhar com dados codificados por dicionário aumenta significativamente o desempenho de consultas SELECT em muitas aplicações.
A eficiência do uso do tipo de dado LowCardinality depende da diversidade dos dados. Se um dicionário contiver menos de 10.000 valores distintos, o ClickHouse geralmente apresenta maior eficiência na leitura e no armazenamento de dados. Se um dicionário contiver mais de 100.000 valores distintos, o desempenho do ClickHouse pode ser inferior em comparação com o uso de tipos de dados comuns.
Considere usar LowCardinality em vez de Enum ao trabalhar com strings. LowCardinality oferece mais flexibilidade e, muitas vezes, apresenta a mesma eficiência ou até uma eficiência maior.
Exemplo
Crie uma tabela com uma coluna LowCardinality:
CREATE TABLE lc_t
(
`id` UInt16,
`strings` LowCardinality(String)
)
ENGINE = MergeTree()
ORDER BY idConfigurações:
- low_cardinality_max_dictionary_size
- low_cardinality_use_single_dictionary_for_part
- low_cardinality_allow_in_native_format
- allow_suspicious_low_cardinality_types
- output_format_arrow_low_cardinality_as_dictionary
Funções: