其他分享
首页 > 其他分享> > 终于搞懂了啥是列存储,啥是行存储

终于搞懂了啥是列存储,啥是行存储

作者:互联网

行式存储VS 列式存储

行式存储

传统的数据库是关系型的,且是按行来存储的。如下图

  行式存储示意图

观察上图,我们不难发现:因为每个人学历不一样的原因,只有张三一个人将整行数据都填满了,李四、王五、赵六的数据都没有将对应的行填满。因为这里的行结构是固定的,每一行都一样,即使你不用,也必须空到那里,而不能没有,而这样的空行也是需要占用一定的存储空间的,如果这样的空行占比较大,势必带来较大的存储空间的浪费,那么是否有什么好的解决办法么?

列式存储

为了与传统的区别,新型数据库叫做非关系型数据库,是按列来存储的。如下图:

  列式存储示意图

下面给出行存储与列存储的映射关系:

原来张三的一列(单元格)数据对应现在张三的一行数据。原来张三的六列数据变成了现在的六行。

原来的六列数据是在一行,所以共用一个主键(即张三)。现在变成了六行,每行都需要一个主键(不然不知道这行数据是谁的),所以原来的主键(即张三)重复了六次。如下图:

  行存储与列存储的映射关系

相当于将每一行的每一列拆开,然后通过rowkey(行唯一键)关联起来,rowkey相同的这些数据其实就是原来的一行。由于原来的列变为了现在的行,有需要就加一行,没需要就不加,有效地减少了存储空间的浪费。

行存储与列存储的对比



作者:GeekerLou
链接:https://www.jianshu.com/p/603113588144
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:存储,列式,行式,一行,终于,搞懂,数据,主键
来源: https://www.cnblogs.com/WaitSani/p/15057642.html