Encoding ClickHouse:在Uint8上使用低基数字段作为布尔值有意义吗?

Encoding ClickHouse:在Uint8上使用低基数字段作为布尔值有意义吗?,encoding,clickhouse,cardinality,Encoding,Clickhouse,Cardinality,ClickHouse中的LowCardinality字段是一种优化,其中的值采用字典编码,以实现更快的查找和更小的存储。根据: 使用低容量数据类型的效率取决于数据的多样性。如果一个字典包含少于10000个不同的值,那么ClickHouse主要显示更高的数据读取和存储效率。如果一个字典包含超过100000个不同的值,那么与使用普通数据类型相比,ClickHouse的性能更差 作为布尔值使用的UInt8值如何?基数是2,但是占用空间这么小(8),使用它在查询中真的会有好处吗?低基数主要对字符串类型有

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

使用低容量数据类型的效率取决于数据的多样性。如果一个字典包含少于10000个不同的值,那么ClickHouse主要显示更高的数据读取和存储效率。如果一个字典包含超过100000个不同的值,那么与使用普通数据类型相比,ClickHouse的性能更差


作为布尔值使用的UInt8值如何?基数是2,但是占用空间这么小(8),使用它在查询中真的会有好处吗?

低基数主要对字符串类型有意义。

低基数(UInt8)总是比UInt8差

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

它们不是“转化为字典”-值是。即使没有任何字典开销,编码数据的大小也不能小于字典键的大小(以及任何额外开销)。请注意,阈值为8字节。没错,编辑了我的问题。无论如何,在设置中,请注意允许\u可疑\u低\u基数\u类型的阈值为8字节(超过800%)。然后给出了多种原因的解释。试试看?