構文
data_type— String、FixedString、Date、DateTime、および Decimal を除く数値型。LowCardinalityは一部のデータ型では効率的でないため、allow_suspicious_low_cardinality_types 設定の説明を参照してください。
説明
LowCardinality は、データの格納方法と処理ルールを変更するスーパー構造です。ClickHouse は LowCardinality カラムに 辞書符号化 を適用します。辞書符号化されたデータを扱うことで、多くのアプリケーションで SELECT クエリのパフォーマンスが大幅に向上します。
LowCardinality データ型の効率は、データの多様性に依存します。辞書に含まれる異なる値が 10,000 未満であれば、ClickHouse は多くの場合、データの読み取りと格納で高い効率を発揮します。辞書に含まれる異なる値が 100,000 を超える場合は、通常のデータ型を使用する場合と比べて、ClickHouse のパフォーマンスが低下することがあります。
文字列を扱う場合は、Enum の代わりに LowCardinality の使用を検討してください。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