1. 列存格式的核心,按列存储带来的压缩率与向量化执行优势?
列存格式的核心是什么?按列存储如何带来压缩率优势与向量化执行优势?
- 行存 vs 列存的数据布局
- 按列存储的压缩率提升机制
- 向量化执行的适配
列存格式的核心是"按列连续存储数据":同一列的值在磁盘/内存中连续存放,而非行存那样按行组织。这带来两大优势:1)压缩率:同一列的数据类型相同、取值往往相似(低基数、重复值多),连续存储后能充分利用字典编码、RLE、delta 等高效压缩,压缩率远高于行存;2)向量化执行:分析查询往往只读取少数列(投影),列存只需读取所需列,减少 IO;且列数据连续、类型统一,可批量为多行执行同一操作(向量化),配合 CPU 缓存局部性提升吞吐。分析型查询(扫描、聚合、过滤)对列存极为友好:只读所需列 + 批量 SIMD 处理。行存则适合点查(按主键取整行)与事务更新。列存的核心价值在于"面向分析场景的 IO 与计算效率"。
列存的两个核心优势是"压缩率"(类型同质、重复多)与"向量化"(连续列、批量处理、缓存友好)。本质是把"面向行的访问"转为"面向列的批量计算",适配分析型负载。