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

Nullable(T)

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

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

クエリ:

結果:

Usage Example