Nullable(T)
T
が許可する通常の値とともに「欠落している値」を示す特別なマーカー (NULL) を保存することができます。例えば、Nullable(Int8)
型のカラムは Int8
型の値を保存でき、値がない行は NULL
を保存します。
T
は Array、Map、および Tuple のいずれかの複合データ型にはできませんが、複合データ型は Nullable
型の値を含むことができます。例として、Array(Nullable(Int8))
があります。
Nullable
型のフィールドはテーブルのインデックスには含めることができません。
NULL
は、ClickHouse サーバーの設定で特に指定がない限り、任意の Nullable
型のデフォルト値です。
Storage Features
テーブルカラムに Nullable
型の値を保存するために、ClickHouse は値が入った通常のファイルに加えて、NULL
マスクを含む別のファイルを使用します。マスクファイルのエントリにより、ClickHouse は各テーブルの行に対して NULL
とそのデータ型のデフォルト値を区別できます。追加のファイルがあるため、Nullable
カラムは類似の通常のカラムと比べて追加のストレージスペースを消費します。
注記
Nullable
を使用すると、ほぼ常にパフォーマンスに悪影響を与えるため、データベース設計時にはこの点を考慮してください。
Finding NULL
カラムの NULL
値を、カラム全体を読み込むことなく null
サブカラムを使って見つけることができます。対応する値が NULL
の場合は 1
を返し、それ以外の場合は 0
を返します。
例
クエリ:
結果: