哪些数据库是行存储?哪些是列存储?有什么区别?


导读:本文带你了解面向列与面向行的数据库。

作者:Alex Petrov

来源:大数据DT(ID:hzdashuju)

大多数数据库系统存储一组数据记录,这些记录由中的组成。字段是列和行的交集:某种类型的单个值。

属于同一列的字段通常具有相同的数据类型。例如,如果我们定义了一个包含用户数据的表,那么所有的用户名都将是相同的类型,并且属于同一列。在逻辑上属于同一数据记录(通常由键标识)的值的集合构成一行。

对数据库进行分类的方法之一是按数据在磁盘上的存储方式进行分类:按行或按列进行分类。表可以水平分区(将属于同一行的值存储在一起),也可以垂直分区(将属于同一列的值存储在一起)。图1-2描述了这种区别:a)显示了按列分区的值,b)显示了按行分区的值。

▲图1-2:面向列和行的存储中的数据布局

面向行的数据库的例子很多:MySQL、PostgreSQL大多数传统的关系数据库。而两个开源的、面向列数据存储的先驱则是MonetDBC-Store(C-Store是Vertica的开源前身)。

01 面向行的数据布局

面向行的数据库按记录或来存储数据。它的布局非常接近表格的数据表示方法,即其中每一行都具有相同的字段集合。例如,面向行的数据库可以有效地存储用户条目,其中包含姓名、出生日期和电话号码:

| ID | Name  | Birth Date  | Phone Number   |

| 10 | John  | 01 Aug 1981 | +1 111 222 333 |

| 20 | Sam   | 14 Sep 1988 | +1 555 888 999 |

| 30 | Keith | 07 Jan 1984 | +1 333 444 555

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值