在真正面向列的DBMS中,没有与值一起存储额外数据。除此之外,这意味着必须支持恒定长度值,以避免在值旁边存储它们的长度“数字”。例如,十亿个UInt8类型的值实际上应该消耗大约1 GB的未压缩,否则这将极大地影响CPU的使用。即使在未压缩的情况下,紧凑地存储数据(没有任何“垃圾”)也是非常重要的,因为解压缩的速度(CPU使用率)主要取决于未压缩数据的量。
这值得注意,因为有些系统可以单独存储不同列的值,但由于它们针对其他场景进行了优化,因此无法有效地处理分析查询。例如HBase,BigTable,Cassandra和HyperTable。在这些系统中,您将获得大约每秒十万行的吞吐量,但不会达到每秒数亿行。
值得注意的是,ClickHouse是一个数据库管理系统,而不是一个数据库。 ClickHouse允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器。