Синтаксис
data_type— String, FixedString, Date, DateTime и числовые типы, кроме Decimal. ИспользованиеLowCardinalityдля некоторых типов данных неэффективно, см. описание настройки allow_suspicious_low_cardinality_types.
Описание
LowCardinality — это надстройка, которая изменяет способ хранения и правила обработки данных. ClickHouse применяет словарное кодирование к столбцам LowCardinality. Работа с данными, закодированными с помощью словаря, существенно повышает производительность запросов SELECT во многих сценариях.
Эффективность использования типа данных LowCardinality зависит от разнообразия данных. Если словарь содержит менее 10 000 уникальных значений, ClickHouse в большинстве случаев обеспечивает более высокую эффективность чтения и хранения данных. Если словарь содержит более 100 000 уникальных значений, ClickHouse может работать хуже по сравнению с обычными типами данных.
Рекомендуется использовать LowCardinality вместо Enum при работе со строками. LowCardinality обеспечивает большую гибкость и часто дает такую же или более высокую эффективность.
Пример
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