当前播放: 到底什么是列式存储?它凭啥速度飞快?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

到底什么是列式存储?它凭啥速度飞快?

王磊 某知名互联网公司大数据架构师
6120次播放
¥4.99 单课购买
开通会员免费看
自从 2015 年大数据的崛起,列式存储就一直不断地出现在我们的耳旁,我们经常会听到有人说 HBase 采用列式存储查询性能提升了不止 100 倍;Cassandra 利用列式存储保障了亿级数据秒级查询和更新;列式存储为大数据领域 TB 甚至 PB 级别数据的实时查询和更新都提供了解决方案。列出存储这么牛,那么到底什么是列式存储?他和传统行式存储有啥差别?接下来就为大家揭开列式存储的“神秘面纱”。讲师介绍王磊,现任国内某知名互联网公司大数据架构师。《offer 来了:Java 面试核心知识点精讲(原理篇)》《offer 来了:Java 面试核心知识点精讲(架构篇)》作者。有十余年丰富的物联网及大数据研发和技术架构经验,对物联网及大数据的原理和技术实现,有深刻理解。长期从事海外项目的研发和交付工作,对异地多活数据中心的建设及高可用、高并发系统的设计,有丰富的实战经验。
展开
登录 后留言

精选留言(13)

  • Johnny
    既然列式存储这么多优点,为什么之前的关系型数据库要采用行式存储,是没想到呢还是行式存储也有其相对于列式存储的优点。

    作者回复: 可能因为关系型数据库最初设计的时候没有海量数据存储压力的需求,另外关系数据模型设计是基于行来设计的,所以很自然使用了行存储模式吧。

    2020-05-14
    2
    9
  • 花花大脸猫
    老师,问个问题,如果走索引覆盖的话,按照视频中的动画,做范围查找,是不是比列式存储要快?

    作者回复: 索引我们可以简单的理解为记录了数据在磁盘上的存储位置,具体存取数据还是要进行磁盘寻址的,因此还会是列存储快,当然前提是两者都有索引。一般行存储索引支持类型多,比如btree ,hash等,列索性以Hash为主。

    2020-05-13
    5
  • Geek_75d94a
    列与列之间的关系怎么维护的?插入的具体细节是怎样的,感觉都没有说。。。
    2020-07-16
    5
  • 托尼斯威特
    感觉讲错了,数据是按照row key 分片,按column key排序的,不同row key的 name不可能在连续的存储空间。
    2020-06-12
    2
  • xwx
    优秀 磊哥
    2020-05-16
    3
  • shiziwen
    每个列族与列之间的关系是如何定义的?如果按照视频里面列式存储在磁盘上的分布,a1,a2...,a9,b1,b2...b9新增一行的时候,a10,b10的时候,需要把b列往后移动才行。
    老师在视频中没有给出具体例子,所以这块不是很理解。
    如何做到高效新增?

    作者回复: 列族之间的关系不同数据库实现不一样,多个列族也只是一个思路,而不是一个实现。如果感兴趣我的offer来了框架篇对各种数据库有介绍。

    2020-05-16
    2
  • 磊哥,列式存储的插入与更新都是新增数据按版本号区分最新数据,那会不会存储浪费呢?每个列都有单独的版本号吗?

    作者回复: 1.一般数据库设计每个记录会有一个版本号
    2.如你所说确实是有空间的"浪费",但是一方面我们基于版本号可以查询历史任何状态的数据,另外以空间换时间是大数据领悟的常用解决方案!

    2020-05-19
    2
    1
  • Regular
    如果是SSD,列式存储还有这么大的优势吗?

    作者回复: 有,在几百tb的数据上优势依然明显

    2020-08-15
  • Amos
    新增的数据,怎么保证和之前的数据存放的磁盘位置连续???
    2020-07-24
    1
  • 伟忠
    特别优秀
    2020-06-15
  • 亲爱的磊哥,看了你视频里的例子,我有个疑惑,在列式存储的查询中,我们查询性别为 “男”的 名字, 这个 gender 和 username,分别为2列,查找为 “男”的 gender 列很快,比较好理解,因为它们本身挤在一起;我疑惑的是, gender 列和 username 列是怎么关联的呢?是怎么快速定位对应的 username 磁盘位置的呢

    作者回复: 从上层sql来看是关联,从数据库底层来看还是要分别查找,然后做过滤和join的。具体快速定位不同索引针对不同数据结构有不同的优化。

    2020-05-24
    1
  • 列式存储真的没有什么劣势嘛?那为什么行式存储数据库还大行其道?压缩具体怎么实现?另外,劣势存储有ACID特性嘛?
    列式存储快的依据是:磁盘顺序存储性能高+数据关联性好压缩比大

    作者回复: ACID特性是数据库实现的,和列存储关系不大。现在大部分列数据库不支持ACID是因为在亿级数据中实现ACID成本太高,收益不大的原因。

    2020-05-24
    2
  • 野性力量
    按照某一列查询完数据,然后又要去其他列找到相同行的数据,会不会比较费时,还是这里有加速的标记

    作者回复: 这种方式比行存储多长磁盘转动寻道快多了,具体优化不同数据库不一样。

    2020-05-18
    3
收起评论
极客时间超级会员
开通超级会员 解锁海量内容免费学特权
立即开通
相关推荐
4636
06:01
iOS 路由链接总是拼错怎么办?
宋旭陶 美团点评
9183
15:17
如何在多线程环境里安全读写数组?
张杰 美团高级技术专家
9851
08:34
如何使用 sed 处理多行配置?
尹会生 金山西山居运维总监
5961
09:53
HBase 和 Aerospike 哪个 NoSQL 才是你的菜?
臧萌 PayPal 数据处理组技术负责人