1 个回答
行式存储部分:
对于更新、插入操作频繁,且需频繁访问整行数据的场景,如小范围的 OLTP(在线事务处理)类操作,Doris 会以行的形式存储相关数据。在此存储方式下,一行数据的所有列值连续存储,类似传统关系型数据库,便于快速读取整行数据,一次磁盘 I/O 操作就能获取整行信息。
列式存储部分:
当面对大量数据的聚合、分组、过滤等 OLAP(在线分析处理)场景时,Doris 会将相关列数据单独存储。例如,在包含用户信息(姓名、年龄、性别、地址等)的表中,若经常要统计不同年龄段的用户数量,年龄列就适合以列存储方式存放。列存储中,一列的数据值连续存储,在进行只涉及某一列或几列的查询时,能极大减少磁盘 I/O,因为只需读取相关列数据,无需读取整行数据。
行存实现细节:
行存的原理是在存储时增加一个额外的列,该列将对应行的所有列拼接起来,采用特殊的二进制格式存储。这种方式使得在点查时,能够通过一次 I/O 操作获取整行数据,有效解决了宽表点查时 I/OPS 瓶颈问题。
对于更新、插入操作频繁,且需频繁访问整行数据的场景,如小范围的 OLTP(在线事务处理)类操作,Doris 会以行的形式存储相关数据。在此存储方式下,一行数据的所有列值连续存储,类似传统关系型数据库,便于快速读取整行数据,一次磁盘 I/O 操作就能获取整行信息。
列式存储部分:
当面对大量数据的聚合、分组、过滤等 OLAP(在线分析处理)场景时,Doris 会将相关列数据单独存储。例如,在包含用户信息(姓名、年龄、性别、地址等)的表中,若经常要统计不同年龄段的用户数量,年龄列就适合以列存储方式存放。列存储中,一列的数据值连续存储,在进行只涉及某一列或几列的查询时,能极大减少磁盘 I/O,因为只需读取相关列数据,无需读取整行数据。
行存实现细节:
行存的原理是在存储时增加一个额外的列,该列将对应行的所有列拼接起来,采用特殊的二进制格式存储。这种方式使得在点查时,能够通过一次 I/O 操作获取整行数据,有效解决了宽表点查时 I/OPS 瓶颈问题。
发布于:1个月前 (03-21) IP属地:
我来回答
您需要 登录 后回答此问题!