LowCardinality(T)
Изменяет внутреннее представление других типов данных на словарно-кодированное.
Синтаксис
Параметры
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
Функции: