行式存储与列式存储的特点是什么,有哪些适用场景?

提问者:Rae 问题分类:面试刷题
行式存储与列式存储的特点是什么,有哪些适用场景?
5 个回答
去
行存适合场景:事务型处理(OLTP),如频繁的单行读写、点查询,数据频繁插入和修改。
列存适合场景:分析型处理(OLAP),如聚合统计、批量扫描。仅进行插入和读取操作的场景。高效压缩,减少I/O量,CPU计算优化等场景。列式存储对 OLAP 性能可以大幅提升——压缩、延迟物化、块遍历、隐式连接。
发布于:3周前 (04-07) IP属地:
勿忘心安
勿忘心安
CPU计算优化方面的差异:
针对列式存储而言,现代CPU支持单指令多数据流(SIMD),可对连续的同类型列数据批量计算(如一次处理128个数值),显著提升聚合计算速度。其次,连续存储的列数据更易被CPU缓存命中,减少内存访问延迟。
发布于:3周前 (04-07) IP属地:
青衫烟雨べ故人归
青衫烟雨べ故人归
数据压缩方面的差异:
1、行式存储:单行内不同列的数据类型差异大(如字符串、数值混杂),压缩率低。
2、列式存储:单列数据具有相同类型和语义,可通过 高效压缩算法(如LZ4、ZSTD、Delta编码)大幅降低存储空间(通常压缩比可达5-10倍),同时减少磁盘到内存的数据传输量。
发布于:3周前 (04-07) IP属地:
抛去江山、换她笑面如花
抛去江山、换她笑面如花
I/O效率方面的差异:
1、行式存储:读取单行数据时效率高,但若需统计某列的聚合值(如 SUM(年龄)),需要读取整行数据(包含无关字段),导致 I/O放大。
2、列式存储:仅读取目标列的数据,显著 减少I/O量。
发布于:3周前 (04-07) IP属地:
凉眸似水°
凉眸似水°
数据组织方式方面的差异:
1、行式存储:数据按行连续存储。例如,表中一行数据的所有字段(如 用户ID、姓名、年龄、地址)在磁盘上连续存放,形成一个数据块。
2、适用场景:事务型处理(OLTP),如频繁的单行读写、点查询。
3、列式存储:数据按列连续存储。例如,所有用户的 用户ID 存储在一起,所有 年龄 存储在一起,形成多个独立的列数据块。
4、适用场景:分析型处理(OLAP),如聚合统计、批量扫描。
发布于:3周前 (04-07) IP属地:
我来回答