Help wanted!
The following content of this documentation page has been machine-translated. But unlike other websites, it is not done on the fly. This translated text lives on GitHub repository alongside main ClickHouse codebase and waits for fellow native speakers to make it more human-readable. You can also use the original English version as a reference.
Nivel de Cifrado WEP)
Permite almacenar marcador especial (NULL) que denota “missing value” junto con los valores normales permitidos por TypeName
. Por ejemplo, un Nullable(Int8)
tipo columna puede almacenar Int8
valores de tipo, y las filas que no tienen un valor almacenarán NULL
.
Para un TypeName
, no puede usar tipos de datos compuestos Matriz y Tupla. Los tipos de datos compuestos pueden contener Nullable
valores de tipo, como Array(Nullable(Int8))
.
A Nullable
no se puede incluir en los índices de tabla.
NULL
es el valor predeterminado para cualquier Nullable
tipo, a menos que se especifique lo contrario en la configuración del servidor ClickHouse.
Características de almacenamiento
Almacenar Nullable
en una columna de tabla, ClickHouse usa un archivo separado con NULL
máscaras además del archivo normal con valores. Las entradas en el archivo de máscaras permiten ClickHouse distinguir entre NULL
y un valor predeterminado del tipo de datos correspondiente para cada fila de la tabla. Debido a un archivo adicional, Nullable
La columna consume espacio de almacenamiento adicional en comparación con una normal similar.
Nota
Utilizar Nullable
casi siempre afecta negativamente al rendimiento, tenga esto en cuenta al diseñar sus bases de datos.
Ejemplo de uso
CREATE TABLE t_null(x Int8, y Nullable(Int8)) ENGINE TinyLog
INSERT INTO t_null VALUES (1, NULL), (2, 3)
SELECT x + y FROM t_null
┌─plus(x, y)─┐
│ ᴺᵁᴸᴸ │
│ 5 │
└────────────┘