Clickhouse 字符串字段磁盘使用情况:空与空

Clickhouse string field disk usage: null vs empty

我正在为大型 Clickhouse table 设计一个架构,其中的字符串字段可能非常稀疏。

我想知道这些字段是否应该可以为空,或者我是否应该存储一个空字符串 "" 作为默认值。在存储方面哪个更好?

你应该存储一个空字符串 ""

可为空的列占用更多磁盘空间 space 并使查询速度减慢两倍。 这是设计的预期行为。

插入速度也变慢了,因为 Nullable 列存储在 4 个文件中,但非 Nullable 列仅存储在每列的 2 个文件中。

https://gist.github.com/den-crane/e43f8d0ad6f67ab9ffd09ea3e63d98aa