Sintaxis
data_type— String, FixedString, Date, DateTime y números, excepto Decimal.LowCardinalityno es eficiente para algunos tipos de datos; consulta la descripción de la configuración allow_suspicious_low_cardinality_types.
Descripción
LowCardinality es una superestructura que modifica el método de almacenamiento de datos y las reglas de procesamiento de datos. ClickHouse aplica codificación por diccionario a las columnas LowCardinality. Trabajar con datos codificados por diccionario aumenta significativamente el rendimiento de las consultas SELECT en muchas aplicaciones.
La eficiencia de usar el tipo de dato LowCardinality depende de la diversidad de los datos. Si un diccionario contiene menos de 10.000 valores distintos, ClickHouse suele mostrar una mayor eficiencia en la lectura y el almacenamiento de datos. Si un diccionario contiene más de 100.000 valores distintos, ClickHouse puede ofrecer un peor rendimiento en comparación con el uso de tipos de datos convencionales.
Considere usar LowCardinality en lugar de Enum al trabajar con cadenas. LowCardinality ofrece más flexibilidad y, a menudo, la misma eficiencia o una mayor.
Ejemplo
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