Sintaxe
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
LowCardinality:
- 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