列式数据库、行式数据库简介


常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hbase,Hive,Clickhouse,Sybase 等。

1、数据准备

数据表示例:
在这里插入图片描述
SQL示例(无索引):
在这里插入图片描述

2、行式数据库

行式数据库,优先以行存储,一个块存储多行数据。读取多行时,需要更多的IO,但是读某行的多列数据时,需要更少的IO.
在这里插入图片描述
行式存储方式:示例中每一个块存储两行。
在这里插入图片描述

通过多次IO操作,找到ssn=666后,可以直接获取到first_name.
在这里插入图片描述

通过多次IO操作,找到id=1后,可以直接获取到一行的所有字段.
在这里插入图片描述

需要扫描所有的块,进行求和。
在这里插入图片描述

3、列式数据库

列式存储数据库:如果取一列值的时候,需要更少的IO;但是如果取多列值的时候需要更多的IO.
在这里插入图片描述

列式存储按列存储,如果某列过多,会分块存储。
在这里插入图片描述
列式存储可以直接找到ssn对应的列,然后根据ID,找到first_name所在列的值。
在这里插入图片描述

如果要查ID=1对应行的所有字段的数据,就要全表扫描了。
在这里插入图片描述

找到salary对应列,直接进行求和。
在这里插入图片描述

4、行式、列式存储对比

行式:读写;适合OLTP;不压缩;集合操作效率低;对于多列数据的操作效率高;
列式:写慢;适合OLAP;压缩;集合操作效率高;对于多行数据的操作效率高;
在这里插入图片描述

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
列式数据库行式数据库是两种不同的数据库存储方式,它们有各自的优势和劣势。 列式数据库(Columnar Database)将数据按进行存储,每个都有各自的数据类型和索引。这种存储方式的主要特点是高度的压缩率和快速的数据访问速度。列式数据库适用于需要经常查询特定的场景,如数据分析、报表生成等。优点包括: 1. 高压缩率:列式数据库能够对相同数据类型的进行高效压缩,因为相同类型的数据具有较高的相似性,从而减少存储空间的占用。 2. 快速查询:由于数据按存储,查询时只需要读取所需的数据,减少了不必要的IO操作,提高了查询效率。 3. 聚合查询效果好:列式数据库适用于聚合计算,例如对大量数据进行分组统计、求和、平均值等操作。 然而,列式数据库也存在一些劣势: 1. 更新和插入数据较慢:由于数据按存储,更新和插入操作需要涉及多个,导致写入性能较低。 2. 不适合事务处理:列式数据库一般不支持事务处理,因此在需要频繁进行事务操作的场景下效果不佳。 相比之下,行式数据库(Row-based Database)将数据按行进行存储,每个行包含多个的数据。行式数据库适用于需要频繁更新和插入数据的场景,如在线事务处理系统。优点包括: 1. 高写入性能:由于数据按行存储,插入和更新操作只需要涉及一行数据,因此写入性能较高。 2. 支持事务处理:行式数据库通常支持事务处理,保证了数据的一致性和可靠性。 不过,行式数据库也存在一些劣势: 1. 查询效率较低:由于数据按行存储,查询时需要读取整行数据,造成不必要的IO开销,降低了查询效率。 2. 存储空间占用较大:相同类型的数据在行式数据库中会重复存储,导致存储空间占用较大。 综上所述,列式数据库适用于数据分析和报表生成等场景,而行式数据库适用于事务处理系统。选择合适的数据库类型应根据具体的业务需求和性能要求来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值