OceanBase 向量化执行引擎相比传统火山模型有哪些优势?
向量化执行引擎自 V4.0 起默认开启,V4.3 升级为 2.0 版本。
相比火山模型(按行迭代)的三大优势:
-
减少函数调用开销 :火山模型每行调用一次
get_next_row(),向量化通过get_next_batch()一次处理一批数据(如 1024 行),调用次数大幅降低。 - 提升 CPU Cache 友好性 :数据按列紧凑排列,空间局部性高,CPU 预取可将批量数据提前加载到 L2 Cache,降低 Cache Miss 率。
- 优化分支预测与 SIMD :分支判断提至批量外层,一批数据仅执行 1 次判断;连续数据存放对 SIMD 指令更友好。
V4.3 引擎 2.0 改进 :实现了定长、变长离散、变长连续三种数据格式,重新设计 Sort、Hash Join、Hash Group By 等算子,进一步提升 AP 场景性能。