类型优化
project 和 subproject 列为例。这些列的类型是 String,但唯一值的数量相对较少:
LowCardinality() 数据类型。这样一来,ClickHouse 存储的是内部值 ID,而不是原始字符串值,从而节省大量空间:
hits 列使用了 UInt64 类型。它占用 8 字节,但最大值相对较小:
专用编解码器
time 列使用了 Delta codec,这很适合时间序列数据。
合适的排序键也可以节省磁盘空间。
由于我们通常会按路径进行过滤,因此我们会将 path 添加到排序键中。
这需要重新创建表。
下面我们可以看到初始表和优化后表的 CREATE 命令: