
AlloyDB 加速 pgvector HNSW:查询性能提升 4 倍

AlloyDB 是 Google 基于 PostgreSQL 的全托管数据库,原生支持向量搜索。针对 pgvector 的 HNSW 索引,AlloyDB 推出了列式引擎加速版(现已 preview)。核心思路是:将 HNSW 索引常驻在列式引擎的内存中,利用向量化内存布局和绕过标准 PostgreSQL 缓冲管理器开销,实现更高效的图遍历。
在 GloVe 100 Angular 数据集(超过 100 万条记录,limit=100)的基准测试中,使用 AlloyDB C4A 16vCPU 实例,列式引擎加速的 HNSW 相比标准 PostgreSQL HNSW(即使索引已完全缓存在 shared buffer 中)展现出两个优势:
1. 吞吐量大幅提升:在相同目标召回率(例如 0.95)下,QPS 提升约 4.2x 到 4.9x。
2. 召回率显著改善:在固定 QPS 水平(如约 350 QPS)时,召回率从约 0.78 提升至 0.94 以上(增益 0.163)。
这些提升完全来自更高效的内存架构,而非从磁盘加载到内存。列式引擎会自动压缩并管理向量数据,内存占用相对较小。
此外,AlloyDB 还提供 ScaNN 索引(基于 Google 14 年以上研究)和标准 KNN 搜索供用户选择,以匹配不同准确率和性能需求。
启用方式很简单:开启 google_columnar_engine.enabled 和 google_columnar_engine.enable_index_caching 两个标志,然后通过 SQL 将 HNSW 索引加入列式引擎缓存即可。无需修改应用代码。
该特性适合追求高吞吐与高召回率的企业级 RAG 和 AI 应用,但需注意列式引擎会消耗内存(尽管高度压缩),且 HNSW 图构建本身有随机性,结果可能略有波动。


