メインコンテンツまでスキップ
メインコンテンツまでスキップ

Nullable(T)

Tが許可する通常の値と同時に「欠損値」を示す特別なマーカー(NULL)を保存できるようにします。例えば、Nullable(Int8)型のカラムはInt8型の値を保存でき、値が存在しない行はNULLを保存します。

Tは、ArrayMap、および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を返します。

クエリ:

結果:

使用例