行存储数据库和列存储数据库的区别
在 DBMS 中组织数据有两种方法——一种是行存储数据库,另一种是列存储数据库。两者之间的基本区别在于,行存储数据库按行存储数据表,而列存储数据库按列存储数据表。
阅读本文以了解更多关于行存储数据库和列存储数据库的信息,以及它们之间是如何不同的。
什么是行存储数据库?
行存储数据库是一种传统的数据库,例如 Oracle、MySQL 等。它按行存储数据表,并且存储表的常用方法是序列化每行数据。基于行的系统旨在有效地返回整行或记录的数据。在行存储数据库中,行按顺序存储,这意味着行将紧密地彼此相邻。
行存储数据库的缺点是速度较慢,因此需要更长的时间。这是因为行存储数据库需要多次磁盘读取。行存储数据库最适合 OLTP(联机事务处理)。
什么是列存储数据库
列存储数据库是一种“No SQL”数据库,例如 HBase 和 Cassandra。列存储数据库不支持“传统”的事务性二级索引。用户有责任维护“倒排索引”。
在列存储数据库中,数据按列存储和检索。因此,由于列中唯一值的缘故,它们允许高压缩率。列存储数据库在执行操作方面更有效率。这些类型的数据库最适合 OLAP(联机分析处理)。
行存储数据库和列存储数据库的区别
下表突出显示了行存储数据库和列存储数据库之间所有重要的区别——
关键 |
行存储数据库 |
列存储数据库 |
---|---|---|
基本 |
它按行存储数据表。 |
它按列存储数据表。 |
数据访问 |
数据访问按行进行 |
数据访问按列进行 |
存储 |
由于基于行的系统中数据压缩能力降低,存储大小优化受到限制。 |
基于列的系统提供更好的存储大小优化功能。 |
性能 |
它比列存储数据库花费更长的时间,因为它需要多次磁盘读取。 |
它比行存储数据库更快。 |
用例 |
最适合 OLTP |
最适合 OLAP |
结论
两种数据库类型之间最显著的区别在于,在行存储数据库中,数据按行访问;而在列存储数据库中,数据按列访问。
您应该根据应用程序的具体需求以及最常执行的查询类型来选择行存储数据库或列存储数据库。行存储数据库针对事务处理进行了优化,而列存储数据库最适合分析和报告。