避免使用可为空的列
Nullable
列(例如 Nullable(String)
)会创建一个单独的 UInt8
类型列。每次用户使用可为空的列时,都需要处理此附加列。这会导致使用额外的存储空间,并且几乎总是会对性能产生负面影响。
为了避免使用 Nullable
列,请考虑为该列设置一个默认值。例如,而不是
CREATE TABLE default.sample
(
`x` Int8,
`y` Nullable(Int8)
)
ENGINE = MergeTree
ORDER BY x
使用
CREATE TABLE default.sample2
(
`x` Int8,
`y` Int8 DEFAULT 0
)
ENGINE = MergeTree
ORDER BY x
注意
请考虑您的用例,默认值可能不合适。