跳转到主要内容
跳转到主要内容
编辑此页面

什么是列式数据库?

列式数据库独立存储每列的数据。这允许仅从磁盘读取查询中使用的那些列的数据。代价是影响整行的操作会成比例地变得更加昂贵。列式数据库的同义词是面向列的数据库管理系统。ClickHouse 是此类系统的典型示例。

列式数据库的主要优势包括:

  • 查询仅使用多列中的少数列。
  • 针对大量数据执行聚合查询。
  • 按列数据压缩。

以下是构建报表时传统行式系统和列式数据库之间差异的图示

传统行式 Traditional row-oriented

列式 Columnar

列式数据库是分析应用程序的首选,因为它允许在表中拥有许多列以备不时之需,但在读取查询执行时间时无需为未使用的列付出成本(传统的 OLTP 数据库在查询期间读取所有数据,因为数据存储在行而不是列中)。面向列的数据库专为大数据处理和数据仓库而设计,它们通常使用低成本硬件的分布式集群进行原生扩展以提高吞吐量。ClickHouse 通过分布式复制表组合来实现这一点。

如果您想深入了解列数据库的历史、它们与面向行的数据库的区别以及列数据库的用例,请参阅列数据库指南