DBMS中面向行和面向列的数据存储的区别

DBMS中面向行和面向列的数据存储的区别

数据存储基本上是存储数据集合的地方,例如数据库、文件系统或目录。在数据库系统中,它们可以通过两种方式存储。它们如下:

  1. 面向行数据存储
  2. 用于数据存储

行存储和列存储的比较如下:

Row oriented data stores Column oriented data stores
数据一次存储和检索一行,因此如果需要一行中的某些数据,就可能读取不必要的数据。 在这种类型的数据存储中,数据存储和检索在columns中,因此它只能在需要时读取相关数据。
面向行数据存储中的记录很容易读取和写入。 在这种类型的数据存储中,与面向行相比,读写操作较慢。
面向行的数据存储最适合在线事务系统。 面向列的商店最适合在线分析处理。
它们在执行适用于整个数据集的操作时效率不高,因此面向行的聚合是一项昂贵的工作或操作。 它们可以高效地执行适用于整个数据集的操作,因此支持对多个行和columns进行聚合。
典型的压缩机制,提供的结果不如我们从面向列的数据存储中获得的效率。 这些类型的数据存储基本上允许高压缩率,因为columns中很少有不同或唯一的值。

面向行数据存储的最佳示例是关系数据库,它是一种结构化数据存储,也是一种复杂的查询引擎。随着数据量的增加,提高性能会带来很大的损失。

面向列的数据存储的最佳示例是HBase数据库,它基本上从头设计为提供可伸缩性和分区,以实现高效的数据结构序列化、存储和检索。

关系数据库和HBase的特点如下:

Relational Database HBase
它基本上是基于固定模式的。 它完全没有模式。
它是一个面向行的数据存储的示例。 它是面向列的数据存储的一个例子。
它主要用于存储规范化数据。 它主要用于存储非规范化数据。
它基本上包含很薄的表。 它基本上包含宽且面向稀疏的填充表。
它没有内置的分区支持。 它基本上支持自动分区。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程