什么是列式数据库?
列式数据库独立存储每列的数据。这允许仅从磁盘读取查询中使用的那些列的数据。代价是影响整行的操作会成比例地变得更加昂贵。列式数据库的同义词是面向列的数据库管理系统。ClickHouse 是此类系统的典型示例。
列式数据库的主要优势包括:
- 查询仅使用多列中的少数列。
- 针对大量数据执行聚合查询。
- 按列数据压缩。
以下是构建报表时传统行式系统和列式数据库之间差异的图示
传统行式
列式
列式数据库是分析应用程序的首选,因为它允许在表中拥有许多列以备不时之需,但在读取查询执行时间时无需为未使用的列付出成本(传统的 OLTP 数据库在查询期间读取所有数据,因为数据存储在行而不是列中)。面向列的数据库专为大数据处理和数据仓库而设计,它们通常使用低成本硬件的分布式集群进行原生扩展以提高吞吐量。ClickHouse 通过分布式和复制表组合来实现这一点。
如果您想深入了解列数据库的历史、它们与面向行的数据库的区别以及列数据库的用例,请参阅列数据库指南。