跳到主内容
快讯直播
AI智模界
AI 词典

向量化执行:数据库里的批处理,不是向量数据库

一句话定义:向量化执行(Vectorized Execution)是数据库的一种查询执行方式——把数据按列切成一批一批(通常几百到几千行),每次调用处理一整批,而不是一行一行地处理。

为什么会有它

最经典的执行方式是「逐行处理」(tuple-at-a-time,也叫 Volcano 模型):取一行、算一步、返回一行,循环往复。逻辑清晰、算子容易组合,但每一行都要经历一次函数调用和分支判断,真正的计算只占很小一部分时间,其余都花在「调用开销」上。

向量化执行换了个思路:把一批数据放进一段连续内存,一次调用就把整批算完。开销被摊薄到成千上万行上,同时带来两个额外好处——一是数据紧凑排列,CPU 缓存命中率更高;二是这种整齐的数据布局很适合 SIMD(单指令多数据)指令,一条指令同时算好几个值。

打个比方:逐行执行像超市收银员每扫一件商品就重新打印一次小票、重新和顾客确认一次;向量化执行则是把整筐商品放上传送带,机器一口气连续读完。

名字最容易混的地方

这里的「向量」指的是一批数据,和深度学习里的嵌入向量(embedding vector)只是撞名。

概念处理对象解决的问题
逐行执行一行简单灵活,但每行开销大
向量化执行一批(数千行)摊薄开销、利用缓存与 SIMD
AI 词典:向量数据库">向量数据库一条高维向量记录相似度检索、近似最近邻
SIMD一条 CPU 指令指令级并行计算

一句话区分:向量化执行回答的是「怎么算」——批量算;向量数据库回答的是「存什么、怎么找」——存高维向量并做相似度检索。两者可以一起出现,也可以完全不相干。

对从业者意味着什么

分析型数据库(OLAP)里,扫描、过滤、聚合、分组这些操作天然适合批量处理,所以列存引擎普遍采用向量化执行,报表和看板因此刷新得更快。在 AI 场景里,RAG 或特征管道除了检索本身,往往还有大量 SQL 式的过滤、join、统计,如果底层引擎支持向量化,这部分会明显更顺。

需要留意两个常见误解:一是以为向量化执行等于「向量数据库」,其实毫无关系;二是以为它等于 GPU 加速,其实向量化执行主要发生在 CPU 上,是和 GPU 加速并列的另一条优化路线。具体某个引擎是否采用、采用到什么程度,以官方文档为准。

判断一个小技巧:看它的算子接口一次接收一行还是一批。一次一批的,基本就是向量化执行。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。