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

LowCardinality(T)

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

Syntax

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

设置:

函数: