encoding - ClickHouse:在用作 bool 值的 Uint8 上使用 LowCardinality 字段是否有意义?

标签 encoding clickhouse cardinality

LowCardinality ClickHouse 中的字段是一种优化,其中值是字典编码的,以实现更快的查找和更小的存储。根据 documentation :

The efficiency of using LowCarditality data type depends on data diversity. If a dictionary contains less than 10,000 distinct values, then ClickHouse mostly shows higher efficiency of data reading and storing. If a dictionary contains more than 100,000 distinct values, then ClickHouse can perform worse in comparison with using ordinary data types.



用作 bool 值的 UInt8 值怎么样?基数是 2,但占用空间如此之小 (8),它实际上会在查询中提供使用它的好处吗?

最佳答案

LowCardinality 主要用于 String 类型。

LowCardinality(UInt8) 总是比 UInt8 差。

在极少数情况下,LowCardinality 对数字类型有意义。但我什至不会测试它,因为它浪费时间。
指向 LC 字典的指针在 .bin 文件中采用 (Int8-Int32),因此在 .bin 文件中存储数值本身在磁盘空间和 CPU 上更便宜。

关于encoding - ClickHouse:在用作 bool 值的 Uint8 上使用 LowCardinality 字段是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62327940/

相关文章:

mysql - 识别与非识别关系(再次!!!)

.net - 用于学习不同类型的字符编码以及它们之间转换的良好资源

Python - 读取奇怪的 utf-16 格式的文本文件

clickhouse - 更改 Clickhouse 中表中的列名称

clickhouse - Clickhouse 集群中获取重复项

c++ - 如何在 C++ 中将大小动态分配给数组?

java - 连接到 MS Access 的 Eclipse 的深不可测的编码行为

python - 如何检查 Python 脚本已经生成的字符串的 linux shell 编码

clickhouse - 如何让clickhouse取新的users.xml文件?

primary-key - 实体关系——弱实体能否作为 'one to many' 参与 'one' 关系