ClickHouse字符串字段磁盘使用情况:null与empty的区别

11

我正在为一个包含字符串字段的Clickhouse大表设计架构,这些字段可能相当稀疏。

我想知道这些字段应该是可空的还是应该将空字符串""作为默认值存储。从存储方面考虑哪种更好?


https://clickhouse.tech/docs/en/sql-reference/data-types/nullable/ - vladimir
1个回答

27

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

可为 null 的列需要更多的磁盘空间,查询速度也会减慢多达两倍。这是出于设计考虑而预期的行为。

插入操作也会变慢,因为可为 null 的列会存储在 4 个文件中,而非可为 null 的列只会在每个列中存储 2 个文件。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接