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