博客
关于我
4张图告诉你:为什么大数据场景中偏爱列式存储?(建议收藏)
阅读量:545 次
发布时间:2019-03-09

本文共 1098 字,大约阅读时间需要 3 分钟。

列式存储 vs 行式存储:比较与优化

行式存储和列式存储是数据库组织数据的两种主要方式,本文将从存储方式、查询性能以及数据压缩等方面,深入探讨两者的优缺点。

存储方式对比

行式存储以行为基本单位,将一张表的所有数据按行连续存储。这意味着每一行包含多个字段,通常采用行-major order的方式组织数据。例如,以下表格:

id name age
1 Alice 30
2 Bob 25

在行式存储中,其实存在着多个行的数据,每一行都包含多个字段。而列式存储则有所不同,它以字段(列)为基本单位,将表中所有数据按照列连续存储。例如:

id name age
1 Alice 30
2 Bob 25

在列式存储中,所有id数据集中在id列,每个列的数据点都被独立存储,其特点是数据的高度局部性。

查询性能分析

列式存储通过将数据按列存储,能够在查询时显著优化性能。这主要体现在以下几个方面:

  • 字段聚集:列式存储可以将所有相同字段的数据集中存放,例如所有的id数据存放在id列,name字段存放在name列。这样,在进行筛选、排序或关联操作时,可以快速定位目标数据。

  • 缓存利用:很多现代数据库系统支持外排序列存储(SortKey),这允许在查询时将需要排序的字段预先存储在索引或缓存中,从而减少IO操作的开销。

  • 数据压缩:借助数据压缩技术,可以在存储层面上进一步降低数据量。通过将字段映射到唯一的数字代码,数据量可以大幅减少。例如,用字典压缩技术,可以将字符串字段替换为唯一的数字代码,使得数据存储需求大幅降低。

  • 数据压缩示例

    假设有一个字段存储大量重复的字符串值,通常情况下,这些字符串需要大量存储空间。通过字典压缩,每个字符串都被映射到唯一的数字代码,这种映射过程类似于Normalization(规范化)过程的一种反向操作。

    字符串值 字典映射
    Alice 1
    Bob 2
    Charlie 3

    通过这种方式,每个字段的映射都能减少存储需求,同时又保持了数据的可解析性。

    查询执行的优化过程

    列式存储在查询执行时,以下步骤展示了其优化过程:

  • 字段映射:首先,列式存储将字段的值映射到预先建立的字典表中,获取唯一的键值编码(如ID)。这一步骤只需进行一次字符串比较。

  • 列匹配:用编码后的数字值去匹配对应的列表中的位置,生成1(表示匹配成功)。

  • 位操作:对不同列的匹配结果进行位运算,生成符合所有条件的记录下标。

  • 结果组装:通过下标快速定位出满足查询条件的完整数据记录,并组装最终结果集返回。

  • 通过这种列式存储加数据压缩的方式,可以显著提升查询执行性能,尤其在需要频繁查询或关联的场景中表现尤为突出。

    转载地址:http://lariz.baihongyu.com/

    你可能感兴趣的文章
    Rabbitmq的内存磁盘监控
    查看>>
    访问servlet时弹出文件下载框解决方法
    查看>>
    cookie、session、token
    查看>>
    IDEA-@Slf4j和log标签&@Data(Lombok)无效
    查看>>
    SpringCloud-Eureka报错 Error creating bean with name解决
    查看>>
    Thymeleaf 生成下标,索引,使用Stat变量
    查看>>
    全局变量初始化顺序的不确定性引发的bug
    查看>>
    ValueError: Unexpected end of file.
    查看>>
    六、登录(二)
    查看>>
    初始微服务---Springcloud发展【第一期】
    查看>>
    RAFT 拜占庭将军 共识算法
    查看>>
    UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
    查看>>
    could not initialize proxy - no Session (SSH)
    查看>>
    cmd编译.java文件 : java:720: 错误: 编码GBK的不可映射字符 Why ? ? ? ?
    查看>>
    【Jquery】获取当前窗口的宽度值/高度值
    查看>>
    Android 架构组件 – 让天下没有难做的 App
    查看>>
    启动MongoDB出现1053错误
    查看>>
    网络对抗技术-Exp2-后门原理与实践 20181314
    查看>>
    能解决数据可视化大屏需求的3款可视化工具
    查看>>
    欢迎来到小迪博客
    查看>>