본문으로 바로가기
본문으로 바로가기

LowCardinality(T)

다른 데이터 타입의 내부 표현을 딕셔너리 인코딩된 형태로 변경합니다.

구문

LowCardinality(data_type)

매개변수

Description

LowCardinality는 데이터 저장 방식과 데이터 처리 규칙을 변경하는 상위 구조입니다. ClickHouse는 LowCardinality-컬럼에 dictionary coding을 적용합니다. 딕셔너리로 인코딩된 데이터를 사용하면 많은 애플리케이션에서 SELECT 쿼리의 성능이 크게 향상됩니다.

LowCardinality 데이터 타입의 효율성은 데이터의 고유 값 개수에 따라 달라집니다. 딕셔너리에 서로 다른 값이 10,000개 미만이면 ClickHouse는 대체로 데이터 읽기 및 저장 측면에서 더 높은 효율성을 보입니다. 딕셔너리에 서로 다른 값이 100,000개를 초과하면 일반적인 데이터 타입을 사용할 때와 비교해 ClickHouse의 성능이 더 나빠질 수 있습니다.

문자열을 처리할 때 Enum 대신 LowCardinality 사용을 고려하십시오. LowCardinality는 사용 측면에서 더 높은 유연성을 제공하며, 동일하거나 더 높은 효율성을 보이는 경우가 많습니다.

예시

다음과 같이 LowCardinality 컬럼을 갖는 테이블을 생성합니다:

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

Settings:

Functions: