有人做了一组向量检索的基准测试,把 Postgres 加 pgvector 与 MongoDB、MariaDB、AliSQL、Valkey 放在一起对比。结论比排名更有意思。
测试关心什么
不只看 QPS。召回率、延迟分布(P50 与 P99 的差距)、索引构建时间、内存占用,以及数据量上去之后的退化曲线。
常见的误区
只测 QPS。向量检索有个特点:可以用召回率换速度。把搜索范围缩小,QPS 立刻上去,但该找到的没找到。所以任何不给召回率的向量基准,数字都不可信。
另一个误区是只测冷启动后的小数据集。十万条和千万条是两个世界,索引结构的行为完全不同。
pgvector 的位置
它不是最快的。专用向量数据库在纯检索吞吐上通常有优势,因为存储布局、索引结构、量化策略都是为向量优化的。
但它的优势在「省事」:数据本来就在 Postgres 里,事务、权限、备份、监控、SQL 生态全都是现成的。多引入一个系统,意味着多一套运维、多一次数据同步、多一个故障点。
什么时候该用专用库
三个信号:向量规模到了单机内存放不下的量级;检索 QPS 成为瓶颈且优化空间用尽;需要复杂的量化与多级索引策略。
什么时候 pgvector 够用
数据量在千万级以内、检索是业务的一环而非核心、团队不想多养一套系统。这个范围覆盖了大多数 RAG 和推荐场景。
给选型的建议
别信排行榜。用你自己的数据跑一遍:真实向量维度、真实数据量、真实查询分布。然后看 P99 延迟能不能接受,因为用户感知到的是最慢的那一次。
一句提醒
索引参数(比如 HNSW 的 m 与 ef_construction)对结果影响极大,默认值往往不是最优。调参花的功夫,通常比换库省下的更多。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。