什么是列式存储和行式存储

这篇具有很好参考价值的文章主要介绍了什么是列式存储和行式存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、列式存储和行式存储

列式存储是指一列中的数据在存储介质中是连续存储的;

行式存储是指一行中的数据在存储介质中是连续存储的。

简单的说,可以把列式数据库认为是每一列都是一个表,这个表只有一列,如果只在该列进行条件查询,速度就很快。

二、列式存储和行式存储优比较

2.1 行式存储

传统的行式数据库将一个个完整的数据行存储在数据页中。这种方式在大数据量查询的时候会出现以下问题:

1、在没有索引的情况下,会把一行全部查出来,查询会使用大量IO

2、虽然建立索引和物化视图可以可以快速定位列,但是也需要花费大量时间

但是如果处理查询时需要用到大部分的数据列,这种方式在磁盘IO上是比较高效的。
一般来说,OLTP(Online Transaction Processing,联机事务处理)应用适合采用这种方式。

2.2 列式存储

列式数据库是将同一个数据列的各个值存放在一起。插入某个数据行时,该行的各个数据列的值也会存放到不同的地方。

例如上例中列式数据库只需要读取存储着“时间、商品、销量”的数据列,而行式数据库需要读取所有的数据列。因此,列式数据库大大地提高了OLAP大数据量查询的效率。

当然,列式数据库不是万能的,每次读取某个数据行时,需要分别从不同的地方读取各个数据列的值,然后合并在一起形成数据行。

因此,如果每次查询涉及的数据量较小或者大部分查询都需要整行的数据,列式数据库并不适用。

三、列式存储优势


基于列模式的存储,天然就会具备以下几个优点:

1,自动索引
因为基于列存储,所以每一列本身就相当于索引。所以在做一些需要索引的操作时,就不需要额外的数据结构来为此列创建合适的索引。

2,利于数据压缩

一、大部分列数据基数其实是重复的:例如,因为同一个 author 会发表多篇博客,所以 author 列出现的所有值的基数肯定是小于博客数量的,因此在 author 列的存储上其实是不需要存储博客数量这么大的数据量的;

二、相同的列数据类型一致:这样利于数据结构填充的优化和压缩,而且对于数字列这种数据类型可以采取更多有利的算法去压缩存储
 

四、适用场景

4.1 行式储存

  1. 关注整张表内容,或者需要经常更新数据
  2. 需要经常读取整行数据
  3. 不需要聚集运算,或者快速查询需求
  4. 数据表本身数据行并不多
  5. 数据表的列本身有太多唯一性的数据

数据库常规设计,一般会采用行式存储 

4.2 列式存储

  1. 基于一列或比较少的列计算的时候
  2. 经常关注一张表某几列而非整表数据的时候
  3. 数据表拥有非常多的列的时候
  4. 数据表有非常多行数据并且需要聚集运算的时候
  5. 数据表列里有非常多的重复数据,有利于高度压缩

算法中输出或者输入的csv文件,一般是列式存储 

五、总结:

列式存储每一列单独存放,数据即是索引。
                  只访问涉及得列,如果我们想访问单独一列(比如NAME)会相当迅捷。
                  一行数据包含一个列或者多个列,每个列一单独一个cell来存储数据。

行式存储: 把一行数据作为一个整体来存储
 

————————————————————————————————

学习:https://blog.csdn.net/qq_43543789/article/details/108662140文章来源地址https://www.toymoban.com/news/detail-442391.html

到了这里,关于什么是列式存储和行式存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云计算中的出口数据是指什么?

    谷歌云(Google Cloud)近日宣布了一项重大政策变动,决定免除那些选择终止使用其服务并将数据迁移到其他云服务商或本地环境的客户的出口数据费用(数据导出费用) 。 这一举措由谷歌云平台负责人阿米特·扎维里(Amit Zavery)在其博客中公布,他表示:“如果有谷歌云客

    2024年01月25日
    浏览(76)
  • 【JAVA】我们常常谈到的方法是指什么?

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中我们总是会介绍到类中的各式各样的方法,也许在应用中我们对它已经有了初步的了解,今天我们就来详细的介绍一下“方法” 在中文中方法常常指的是获得某种东西或达到某种目的而采取的手段与行

    2024年02月13日
    浏览(35)
  • 大数据平台安全主要是指什么安全?如何保障?

    大数据时代已经来临,各种数据充斥着我们的生活与工作。随着数据的多样性以及复杂性以及大量性,大数据平台诞生了。但对于大数据平台大家都不是很了解,有人问大数据平台安全主要是指什么安全?如何保障? 大数据平台安全主要是指什么安全? 大数据平台安全主要

    2024年02月11日
    浏览(37)
  • 没错,列式存储非常牛。但是,Ta还可以更高效

    很多数据仓库产品都采用了列式存储。如果数据表的总列数很多而计算涉及的列很少,采用列存就只读取需要的列即可,能够减少硬盘访问量,提高性能。 特别是数据量非常大时,硬盘扫描和读取的时间占比很大,这时候列存的优势会很明显。 那么,是不是只要用了列存就

    2024年02月02日
    浏览(26)
  • 43.241.18.X微端服务器一般是指的什么意思

    “微端”是微型客户端的简写,微端游戏客户端只有一些基本的功能,客户端会根据玩家所到地图,自动将地图文件,以及一些其它文件下载到玩家本地的客户端文件夹中,这样就形成了玩家一边玩游戏一边下载相关的文件到本地。这一特性就需要放游戏服务端的服务器的上

    2024年02月13日
    浏览(31)
  • 【入门篇】ClickHouse最优秀的开源列式存储数据库

    ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 在传统的行式数据库系统中,数据按如下顺序存储: Row WatchID JavaEnable Title GoodEvent EventTime #0 89354350662 1 Investor Relations 1 2016-05-18 05:19:20 #1 90329509958 0 Contact us 1 2016-05-18 08:10:20 #2 89953706054 1 Mission 1 2016-05-18 07:38:00 #N …

    2024年02月04日
    浏览(34)
  • 性能优化:Spark SQL中的谓词下推和列式存储

    Apache Spark是一个强大的分布式计算框架,Spark SQL是其一个核心模块,用于处理结构化数据。性能优化是大数据处理中的一个关键问题,本文将深入探讨Spark SQL中的两个性能优化技术:谓词下推(Predicate Pushdown)和列式存储(Columnar Storage),以提高查询性能和降低资源消耗。

    2024年02月02日
    浏览(35)
  • (5) 可伸缩性和弹性:云计算的可伸缩性和弹性是指系统随着用户的需求增加或减少计算容量和存储容量的能力。

    作者:禅与计算机程序设计艺术 云计算(Cloud Computing)是一种通过网络连接到Internet提供计算、网络和存储服务的一种新型IT技术。云计算能够按需获取计算机算力、网络带宽及数据存储资源,使客户能够更快更便捷地享受互联网信息技术服务。云计算在提升用户能力方面具

    2024年02月08日
    浏览(37)
  • POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 列式数据是如何存储与处理的

    开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共950人左右 1 + 2 + 3)新人会进入3群 第四部分将深入介绍列索引存储,这是

    2024年02月13日
    浏览(34)
  • MySQL 全局锁、表锁和行锁

    1、全局锁 全局锁,是指对整个MySQL数据库加锁,对应的命令是flush tables with read lock;(以下简称FTWRL) 当你需要让整个库处于只读模式的时候,可以使用这个语法,它的应用场景,一般是在 全库逻辑备份的时候 。我们知道MySQL自带的mysqldump逻辑备份工具可以使用--single-tran

    2024年02月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包