跳到主要内容

什么是列式数据库?

·2 分钟阅读
列式数据库独立存储每列的数据。这允许仅从磁盘读取给定查询中使用的那些列的数据。

简介

列式数据库独立存储每列的数据。这允许仅从磁盘读取给定查询中使用的那些列的数据。 缺点是,影响整行的操作会变得相对更加昂贵。 列式数据库是面向列的数据库管理系统的同义词。 ClickHouse 是这种系统的典型示例。

列式数据库的优势

列式数据库的主要优势是

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

面向行的数据库与面向列的数据库

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

传统面向行 Traditional row-oriented

列式 Columnar

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