跳到主要内容
跳到主要内容

LowCardinality(T)

将其他数据类型的内部表示转换为字典编码。

语法

LowCardinality(data_type)

参数

描述

LowCardinality 是一种上层结构,用于改变数据的存储方式和处理规则。ClickHouse 会对 LowCardinality 列应用字典编码。在许多应用场景下,基于字典编码数据进行 SELECT 查询可以显著提升性能。

使用 LowCardinality 数据类型的效率取决于数据的多样性。如果字典包含少于 10,000 个不同取值,那么在大多数情况下,ClickHouse 在数据读取和存储方面会表现出更高的效率。如果字典包含超过 100,000 个不同取值,那么与使用普通数据类型相比,ClickHouse 的性能可能更差。

在处理字符串时,可以考虑使用 LowCardinality 来替代 EnumLowCardinality 在使用上提供了更高的灵活性,并且通常可以达到同等或更高的效率。

示例

创建一个包含 LowCardinality 列的表:

CREATE TABLE lc_t
(
    `id` UInt16,
    `strings` LowCardinality(String)
)
ENGINE = MergeTree()
ORDER BY id

设置:

函数: