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
Функции: