一图理解行式数据库和列式数据库的区别

导语:随着大数据的发展,现在出现的列式存储和列式数据库,如Hbase。它与传统的行式数据库有很大区别的。

定义

行式数据库是按照行存储的,行式数据库擅长随机读操作不适合用于大数据。像SQL server,Oracle,mysql等传统的是属于行式数据库范畴。

列式数据库从一开始就是面向大数据环境下数据仓库的数据分析而产生。

一图理解行式数据库和列式数据库的区别_第1张图片
一图理解行式数据库和列式数据库的区别

二者区别

  • 行式数据库把一行中的数据值串在一起存储起来,然后再存储下一行的数据,以此类推。
  • 列式数据库把一列中的数据值串在一起存储起来,然后再存储下一列的数据,以此类推。
一图理解行式数据库和列式数据库的区别_第2张图片
二者区别.png

列式数据库的优缺点:

优点:

  • 极高的装载速度 (最高可以等于所有硬盘IO 的总和,基本是极限了)

  • 适合大量的数据而不是小数据

  • 实时加载数据仅限于增加(删除和更新需要解压缩Block 然后计算然后重新压缩储存)

  • 高效的压缩率,不仅节省储存空间也节省计算内存和CPU。

  • 非常适合做聚合操作。

缺点:

  • 不适合扫描小量数据

  • 不适合随机的更新

  • 批量更新情况各异,有的优化的比较好的列式数据库(比如Vertica)表现比较好,有些没有针对更新的数据库表现比较差。

  • 不适合做含有删除和更新的实时操作

参考文档

  • 行式数据库与列式数据库的对比

你可能感兴趣的:(一图理解行式数据库和列式数据库的区别)