18600329666

咨询技术专家

扫一扫
与技术专家在线沟通

Menu
秒懂列式数据库和行式数据库
行式数据库(Row-Based)数据按行存储,常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hbase,Hive,Clickhouse,Sybase 等。
行存储是将整行放入连续的物理位置,就像传统的记录存储或文件存储方式,列存储是按列将连续的某几列数据放入连续的物理存储单元中,两种存储方法如下图所示。
列式存储和行式存储示意图
行存储的特点
  • 数据是按行存储的
  • 没有索引的查询会消耗大量的IO资源
  • 建立索引和视图需要耗费大量的时间和系统资源
  • 面对高并发的查询,数据库必须被大量膨胀才能满足性能需求
列存储特点
  • 数据按列存储—每一列单独存放
  • 数据即是索引,无须另建索引
  • 只访问查询所涉及到的列(与行数据库不同)--节省IO开支
  • 可以高效压缩
  • 查询的并发处理性能高
实操看列式数据库性能优点
姓名(name) 年龄(age) 住址(addr) 生日(bt) 证件号(num) 录入时间(intime)
张三 22 北京海淀 20000101 xxx 20220201
李四 21 北京海淀 20011112 xxx 20220201
王五 19   20031112 xxx 20220201
查询年满20岁人员姓名住址(表名为person)select name,addr from person where age>20
列式存储读取3列
姓名(name) 年龄(age) 住址(addr) 生日(bt) 证件号(num) 录入时间(intime)
张三 22 北京海淀 20000101 xxx 20220201
李四 21 北京海淀 20011112 xxx 20220201
王五 19 北京海淀 20031112 xxx 20220201
行式存储读取所有列
姓名(name) 年龄(age) 住址(addr) 生日(bt) 证件号(num) 录入时间(intime)
张三 22 北京海淀 20000101 xxx 20220201
李四 21 北京海淀 20011112 xxx 20220201
王五 19
北京海淀
20031112 xxx 20220201
应用场景
行存储数据库适用在OLTP(on-line transaction processing)场景即联机事务处理,而列数据库适合适用在大数据分析OLAP(on-line  Analytical processing)联机分析处理,当然不管是列数据库还是行数据库起功能或能力都不是万能的,只是给DBA多提供了一个可选方案,具体项目执行需要架构师根据项目实际情况选择最合适的方案。