中间件速查手册
数据仓库与 OLAPVectorized Execution

向量化执行 是什么?

一次处理一批(如 8192 行)而不是一行,充分利用 CPU 缓存

类比:流水线批量打包,比一件件手拿快得多

为什么快

逐行处理时,每行都要做函数调用、类型判断、虚函数分发,CPU 大部分时间花在“调度”上而不是计算上。向量化把 8192 行凑成一批,用连续内存 + SIMD 指令一次算完,分支预测也友好。

配合列存,同一列的数据在内存里是连续的,CPU 缓存命中率极高。

代价

向量化对短查询不友好:数据量小的时候,批处理的开销反而更明显。所以 ClickHouse 在点查(按主键取一行)上不如 MySQL,它的优势在“扫描大量数据做聚合”。

和 MPP 的关系

两者是不同维度的优化:MPP 是“多台机器并行”,向量化是“单核内并行”。Doris、StarRocks、ClickHouse 都是两者结合——节点间并行 + 节点内向量化。

它出现在这些中间件里

相关问题

相关概念