LowCardinality(T)
更改其他数据类型的内部表示为字典编码。
Syntax
参数
data_type
— String, FixedString, Date, DateTime 和除 Decimal 之外的数字。对于某些数据类型,LowCardinality
的效率不高,见 allow_suspicious_low_cardinality_types 设置说明。
Description
LowCardinality
是一种超结构,改变数据的存储方式和处理规则。ClickHouse 对 LowCardinality
列应用 字典编码。使用字典编码数据进行操作能显著提高许多应用的 SELECT 查询性能。
使用 LowCardinality
数据类型的效率取决于数据的多样性。如果字典包含少于 10,000 个不同值,则 ClickHouse 的数据读取和存储效率通常较高。如果字典包含超过 100,000 个不同值,则 ClickHouse 的性能可能会比使用普通数据类型差。
在处理字符串时,考虑使用 LowCardinality
代替 Enum。LowCardinality
提供了更大的灵活性,通常显示出相同或更高的效率。
Example
创建一个带有 LowCardinality
列的表:
Related Settings and Functions
设置:
- 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
函数: