为什么基于列的数据库更快查询?

时间:2018-05-22 18:17:19

标签: database

我正在研究用于新数据库的方法,该数据库将用于我们的新应用程序。数据量不会像1亿条记录那么庞大,但在归档之前会有大约1000万条记录。对于这么多数据使用基于列的方法是否比基于行的数据库非常有用?为什么基于列的数据库更快查询?

1 个答案:

答案 0 :(得分:2)

基本上,面向行和面向列的DB之间的主要区别在于它们用于序列化数据的模型。面向行的DB将每行中的数据存储为连续的块。面向列的DB将每个的数据存储在连续的块中。此外,这些块通常是压缩和分类的。

因此,性能的差异实际上取决于查询的类型。使用较少I / O搜索的查询将执行得更快,并且从连续块读取是单个搜索。因此,如果您的查询依赖于列(或多列)上的聚合或排序,则列存储可以更快地执行,因为读取列中的所有值可以是在最佳条件下的单个搜索。如果您的查询基于索引列(如客户ID)在巨大的客户表中搜索少量客户记录,那么行存储DB实际上可能更快。