2026 向量数据库全景对比:从 pgvector 到 Milvus,RAG 基础设施如何选型

2026 向量数据库全景对比

如果你正在搭建一个 RAG(检索增强生成)应用,迟早会面对同一个问题:向量数据库选哪个?

过去两年,向量数据库从一个”要不要用”的决策,变成了”用哪个”的选择题。生态从最初一两家(Pinecone、Milvus)膨胀到 30+ 个选项——还有 Chroma 这种内嵌式、pgvector 这种”零新增基础设施”的后来者。选择多了,纠结就来了。

这篇文章基于 Salt Technologies AI Q1 2026 基准数据Vecstore 2026 年生产环境实测以及 Encore、Milvus 官方等多来源信息,对 6 个主流向量数据库做一维度的性能、成本和适用场景对比。不卖弄参数矩阵,只讲你在生产环境里真正会遇到的取舍。

为什么选型这么重要

向量数据库是 RAG 架构的”检索层”——你的文档被切成片段、转成 embedding 向量、存进去,然后每次用户提问都要从这里做最近邻搜索(ANN)。它的性能直接决定:

  • 延迟:用户等到答案需要多久
  • 成本:每月账单多少
  • 扩展性:100 万向量还行,1 亿怎么办
  • 运维负担:需要专门的 SRE 盯着,还是 push 进去就完事

选错的话,后期迁移非常痛苦——不仅涉及数据格式转换,还会改变你整个检索流水线的调优参数。所以第一版选什么,往往就是上线版本用的什么

六大主流方案速览

在 2026 年的生态中,真正被广泛采用的向量数据库基本集中在以下几家:

数据库 类型 部署方式 开源许可 GitHub ⭐ 单节点最大向量数
pgvector Postgres 扩展 随 Postgres 自托管 MIT 10-50M
Qdrant 专用向量 DB 自托管 / Qdrant Cloud Apache 2.0 ~35,000+ 数十亿(分布式)
Weaviate 专用向量 DB 自托管 / Weaviate Cloud BSD-3 ~30,000+ 数十亿(托管)
Milvus 专用向量 DB 自托管 / Zilliz Cloud Apache 2.0 40,000+ 数十亿+(分布式)
Pinecone 专用向量 DB 托管(Serverless / Pod) 闭源 数十亿
Chroma 内嵌式 / 轻量 进程内 / 客户端-服务端 Apache 2.0 ~19,000+ <1M(单节点)

Milvus 在 2025 年 12 月突破 40,000 GitHub ⭐,成为向量数据库生态中最受欢迎的开源项目,被 NVIDIA、Salesforce、eBay、Airbnb、DoorDash 等超过 10,000 家企业用于生产。Qdrant 以 Rust 实现闻名,性能表现突出。Weaviate 则以内置混合搜索和 GraphQL 支持见长。

Pinecone 作为该品类的先驱,走纯托管路线——没有开源版本,但提供开箱即用的零运维体验。

性能基准:延迟、吞吐量与召回率

查询延迟(1M 向量,1536 维,标准 OpenAI embedding)

Salt Technologies Q1 2026 基准测试结果(p50 / p99,毫秒):

数据库 p50 延迟 p99 延迟 吞吐量(每秒索引数)
Qdrant 4ms 25ms 8,000-20,000
Redis 5ms 20ms 15,000-40,000
Milvus 6ms 35ms 10,000-30,000
Pinecone 8ms 45ms 5,000-15,000
Chroma 12ms 70ms 2,000-8,000
Weaviate 12ms 65ms 3,000-10,000
pgvector 18ms 90ms 1,000-5,000

几个关键发现:

Qdrant 在延迟上领先。 其 Rust 实现带来显著的性能优势,在多个数据集上比竞争对手快 4 倍的 QPS。尤其在做元数据过滤搜索时(”找相似产品且 category=shoes”),Qdrant 的过滤性能是业内最好的。

pgvector 的速度比很多人想象的好。 “Postgres 做向量搜索太慢”这个说法来自 IVFFlat 索引时代。自 pgvector 0.5.0 引入 HNSW 索引后,pgvector 在 1M 向量规模上能匹配甚至超过专用向量数据库。Supabase 的基准测试显示,pgvector HNSW 在同等算力下 99% 准确率超过 Qdrant。

Pinecone Serverless 用延迟换便利。 Serverless 层比自托管或专用节点慢,他们的 Pod 层(p2)更快但价格显著更高。上面的数据是大多数团队实际使用的 Serverless 层表现。

Pinecone 的召回率最低——而且无法调优。 Vecstore 的实测显示:

  • Qdrant(HNSW):~99.2%
  • Milvus(HNSW):~99.0%
  • pgvector(HNSW, ef_search=200):~98.5%
  • Weaviate(HNSW):~97.8%
  • Pinecone Serverless:~95%

关键问题是 Pinecone 不暴露 HNSW 参数,用户无法调优索引来控制精度-性能权衡。对某些应用这没问题,对另一些则是致命缺陷。

向量数据库性能对比(p50 延迟,越低越好)

向量数据库性能对比图

成本:同样 1M 向量的真实月账单

这是最现实的部分。性能数据可以跑分,成本却是每个月实实在在要付的。

Salt Technologies Q1 2026 管理版定价(起步价):

数据库 起步价 付费模式
Redis Cloud $7/月 按量计费
Qdrant Cloud $9/月 按使用量(1GB 免费层)
Weaviate Cloud $25/月 按量计费
Supabase $25/月 Pro 版(含 pgvector)
Milvus (Zilliz Cloud) $65/月 容量计费
Pinecone $70/月 2GB 免费层,按量/Pod
Elasticsearch $95/月 按量计费

1M 向量、1024 维、中等查询量的生产环境月费估算(Vecstore 实测):

方案 月费估算 说明
Weaviate Cloud ~$45 $45 起价,入门友好
Pinecone Serverless ~$50-80 存储便宜,读取量积累快
Qdrant Cloud ~$65-102 按资源计费(CPU/RAM/磁盘)
pgvector on Neon ~$30-150 Serverless PG,按活跃时间计费,突发负载更便宜
pgvector on RDS ~$260 db.r6g.large,但含完整 Postgres 实例

pgvector on RDS 最贵——但你买的是一个完整 Postgres。 不是单独的向量数据库,而是应用数据 + 向量数据共存于一个实例,一个连接池、一个备份策略、一次部署。对很多团队来说,这个简便性值溢价。

pgvector on Neon 改变了游戏规则。 Neon 的 serverless Postgres 空闲时计算归零。如果你的搜索流量是突发的(工作时段高、夜间低),只为活跃时间付费。能把本需 $260/月的 RDS 成本降到 $30-50/月。Vecstore 因此将基础设施整体迁移到 Neon——延迟从 200ms 降到 80ms,架构也简化了。

50M 向量规模时,成本差距急剧扩大。 Timescale 的 pgvectorscale 基准测试显示:自托管 Postgres 在 EC2 上约 $835/月,对比 Pinecone s1 层 $3,241/月或 p2 层 $3,889/月——节省了 75-79%。

向量数据库成本对比(1M 向量生产估算)

向量数据库成本对比图

深度特性对比

混合搜索(Hybrid Search)

混合搜索 = 向量相似度 + 关键词匹配(如 BM25),在单一查询中结合两者。

  • Weaviate:最成熟的内置混合搜索,向量 + BM25 一条查询完成
  • Elasticsearch:kNN 向量搜索 + 全文搜索原生结合,如果你已经在用 ES
  • Qdrant:通过稀疏向量(Sparse Vectors)支持混合搜索
  • Pinecone:提供 sparse-dense 混合搜索
  • pgvector:通过 SQL 将向量搜索与 Postgres 全文搜索结合

可扩展性与极限

  • Chroma:设计用于 <1M 向量,适合原型开发和轻量生产
  • pgvector / Supabase:单节点 10-50M 向量。标准 HNSW 在 5-10M 以上性能下降明显——50M 向量 × 768 维需要约 150GB+ RAM。Timescale 的 pgvectorscale 扩展引入 StreamingDiskANN(磁盘索引),50M 向量上 p95 延迟比 Pinecone s1 层低 28 倍
  • Milvus:为 十亿级数据集设计,支持 8 种索引算法(含 GPU 加速),分片和分区最成熟
  • Qdrant / Weaviate:分布式模式下可达 数十亿向量

ACID 与事务

只有 pgvector 和 Supabase 支持 ACID 事务——因为底层是 PostgreSQL。如果你在向量数据和关系数据之间需要事务一致性(比如”先更新用户数据再插入向量”作为一个原子操作),这是唯一的选项。专用向量数据库(Pinecone、Qdrant、Weaviate、Milvus)都不提供完整 ACID 保证。

选型决策框架:该选哪个?

别被功能矩阵忽悠了。实际选型时,按这个顺序问自己:

1. 你已经在用 Postgres 吗?→ 先用 pgvector

如果 Postgres 已经是你的数据库,加一个 pgvector 扩展,零新增基础设施。SQL 就是超能力——“找相似图片,且上传者是认证账户,且 7 天内上传”这只是一条 SQL 查询。用独立向量数据库的话,那是:向量搜索 → 过滤 → 再 join 应用数据库。

2. 想要零运维、不在乎调优 → Pinecone

纯托管,serverless,没有运维负担。你专注应用,Pinecone 处理扩展、备份、可用性。代价是不能调优索引精度,成本随规模线性增长。

3. 需要最快的过滤搜索、想自托管、用 Rust → Qdrant

最低延迟(p50 4ms),过滤搜索性能业内第一。开源 Apache 2.0,可以自托管或上 Qdrant Cloud。

4. 数据量巨大、需要 GPU 加速 → Milvus

十亿级向量数据集的最佳选择,8 种索引算法可精细调优,社区生态最成熟(40,000+ ⭐)。

5. 需要混合搜索且体验要好 → Weaviate

内置混合搜索体验最好,GraphQL 接口简洁,托管和自托管都支持。

6. 只是原型验证、规模不大 → Chroma

最易上手的向量数据库,进程内运行零配置。但生产规模受限(<1M 向量),适合快速原型和轻量场景。

7. 用 MongoDB 的 → MongoDB Atlas Vector Search

直接在现有 MongoDB 数据上添加向量能力,Atlas 聚合管道原生支持。

真实世界的建议

Vecstore(一家专注语义搜索的创业公司)的经验值得参考:他们在生产环境中从 Pinecone + RDS 迁移到 pgvector + Neon,不是出于性能,而是出于架构简洁性。向量和应用数据在同一数据库里,一个连接池、一个备份策略,问题少了一半。

更重要的真相是:5ms 和 15ms 的向量查询延迟差异,用户根本感知不到。 真正影响搜索结果质量的,是 embedding 模型的选择和搜索相关性调优,不是数据库之间的几毫秒差距。

选一个适合你规模和团队的数据结构,把精力花在 embedding 质量、chunk 策略和相关性调优上——那才是 RAG 系统的命门。

总结

  • 规模 <10M 向量 + 已有 Postgres:pgvector,零成本增量,SQL 超能力
  • 零运维 + 快速上线:Pinecone,代价是不能调优精度
  • 最低延迟 + 自托管:Qdrant,Rust 性能优势明显
  • 十亿级规模:Milvus,最成熟的分片/GPU 加速
  • 混合搜索优先:Weaviate,最流畅的向量+关键词统一查询
  • 原型/轻量:Chroma,零配置上手
  • 突发负载成本敏感:pgvector on Neon,serverless 按活跃时间计费

选型没有银弹,但有了这个框架,你应该能根据自身约束快速收敛到 1-2 个候选,然后做 PoC 验证。


参考资料: