LowCardinality(T)
他のデータタイプの内部表現を辞書エンコードに変更します。
Syntax
Parameters
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 は通常のデータタイプを使用する場合と比較して、パフォーマンスが低下する可能性があります。
文字列を扱う場合は、Enum の代わりに LowCardinality
を使用することを検討してください。LowCardinality
は使用においてより高い柔軟性を提供し、同等またはより高い効率を示すことが多いです。
Example
LowCardinality
カラムを持つテーブルを作成します:
Related Settings and Functions
Settings:
- 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
Functions: