列式数据库独立存储每列的数据。这允许仅读取任何给定查询中使用的那些列的数据。代价是影响整行的操作会变得成比例地更昂贵。列式数据库的同义词是面向列的数据库管理系统。ClickHouse 是此类系统的典型示例。
列式数据库的主要优点是
- 仅使用少数列的查询。
- 针对大量数据的聚合查询。
- 面向列的数据压缩。
以下是构建报告时传统面向行系统和列式数据库之间差异的说明
传统面向行系统
列式数据库
列式数据库是分析应用程序的首选,因为它允许在表中拥有许多列,以备不时之需,但在读取查询执行时间上无需为未使用列付出代价(传统 OLTP 数据库在查询期间读取所有数据,因为数据存储在行中,而不是列中)。面向列的数据库专为大数据处理和数据仓库而设计,它们通常使用低成本硬件的分布式集群以原生方式进行扩展,以提高吞吐量。ClickHouse 通过 分布式 和 复制 表的组合来实现这一点。