跳到内容

怎么选★★★★★9 分钟阅读

向量数据库怎么选:pgvector、Qdrant、Pinecone、Weaviate 对比

大部分团队用错误理由选错了 vector DB。这篇按你的实际 stack 教你怎么挑。

登入以收藏

vector DB 变成宗教了。大家用 Hacker News 上的讨论或 benchmark chart 选工具 — 那些图表在你产品的真实规模上大多没意义。诚实的判断:1000 万 vector 以下的产品大多应该用 pgvector;以上才应该用 Qdrant 或 Pinecone;其他大部分人都不需要。

pgvector:90% 产品的正确默认

如果你有 Postgres(现在谁没有),pgvector 几乎肯定是对的答案。它是 Postgres 扩展;你既有的工具(备份、replication、transaction、JOIN)全部留下。vector 可以跟它们参照的原始资料放同一张表。大部分 production AI 功能(现有 table 的语义搜索、help doc 的 RAG、推荐 embedding)这样最强。

benchmark:pgvector 配 HNSW index,在普通 Postgres 机器上轻松处理千万量级 vector。2025-2026 世代的 pgvector 改进(HNSW、并行 index 建立、pgvectorscale 的 ScaNN 量化)把跟专门 vector DB 的性能差距缩到很小。

pgvector 撑不住的时候:> 5 千万 vector 而且延迟严格,或者极高写入(每小时数百万 vector 串进来)。到那个 scale 你会自己知道。

Qdrant:自架的最强专门 vector DB

Qdrant 是最强的开源专门 vector DB。Rust 写的、快、部署简单(单一 binary 或 Docker)、云端产品定价合理。filter 故事是业界最强 — 可以在向量搜索前做复杂 metadata 过滤,而且很有效率。

什么时候用 Qdrant:pgvector 撑不住、要 hybrid search(BM25 + vector)内建、或者需要进阶过滤。Qdrant Cloud 处理 ops;自架 Qdrant 在一台 $20/月 VPS 上处理 100 万 vector 没问题。

弱点:生态跟社群比 Pinecone 小。Stack Overflow 资料较少。产品变动快 — 2024 年的 tutorial 看到的,常常已经过时。

Pinecone:ops 不够的团队的对选择

Pinecone 最贵也最简单。你不用想 DB 的事。自动 scale。可靠性真的很强。团队钱多 ops 不够(大部分早期初创就这样),Pinecone 把整类麻烦抹掉。

什么时候用 Pinecone:需要它就 work、规模到了(> 1000 万 vector)、没人想跑 infra。serverless 方案把以前「最低 $70/月」的门槛拿掉,现在可以便宜开始再 scale up。

弱点:贵。规模化后 Pinecone 大概比自架 Qdrant 贵 5-10 倍。供应商锁定:换掉不容易,因为 API 跟 index 选项跟开源标准不同。

Weaviate:内建 hybrid search 但偏重

Weaviate 很有自己想法。它包了自己的 data modeling 层、内建 hybrid search 跟 rerank、支持 embedding 生成的 module、整体设计也用心。开源自架可行;云端产品稳。

什么时候用 Weaviate:想要 hybrid search 跟内建 module 不用整合五个工具,或者需要对 vector 做 GraphQL query(很少见)。最近被更简单的工具瓜分市场 — 「all-in-one」没有「Postgres + 重要部分用一个小专家」这种组合受欢迎。

Milvus、Chroma、LanceDB、MongoDB Atlas、Elastic

  • Milvus — 腾讯、字节跳动这类公司处理十亿 vector 等级的高端选择。运维很重。不到那个 scale 不要用。
  • Chroma — 原型最好用的 DX。内嵌、不用 server、很 Pythonic。Jupyter notebook 跟 demo 用。production 换别的。
  • LanceDB — 架构有意思(数据放 S3、多模态友好)。值得观察。production 成熟度进步中,但还落后 Qdrant。
  • MongoDB Atlas Vector Search — 已经在 MongoDB Atlas 就 OK。不要为了这个迁到 MongoDB。
  • Elastic / OpenSearch — 已经跑 Elastic 就 OK。也不要为了这个迁过去。
  • Redis Vector Search — 快、in-memory、贵。利基场景(实时 agent 需要 10ms 以下 vector query)。

benchmark chart 没告诉你的

供应商发的 benchmark(「1 亿 vector 在 5ms p99」)几乎永远跟你的 workload 不符。实际性能看:

  • 你的 filter 基数(metadata filter 在搜索前匹配多少 vector)
  • 你的更新模式(频繁写入会 invalidate HNSW cache)
  • 你的维度数(1536 vs 768 vs 384 全部都不一样)
  • 你的硬件(NVMe SSD vs 网络 storage 比 DB 本身重要)

如果 benchmark 在主导你的决策,用你自己的资料跑一次。没 context 的「我的 DB 5ms」没意义。

什么时候完全不需要 vector DB

  • 1 万 vector 以下:用 NumPy 在 Python list 里放着就好。加 DB 只增加运维成本没好处。
  • 静态不变的数据集:全部预先算好,存 Parquet,FAISS 在 process 里查。不需要 DB。
  • 长 context 模型放得下你的数据:Gemini 2.5 Pro 1M+ context,小 corpus 有时可以完全跳过检索。
  • 关键字搜索本来就更好:当 ILIKE 或 BM25 零成本就能解决你的问题,不要 vector 化。

很多「需要」RAG 的产品,其实只需要全文搜索加上聪明的 prompt。先试简单的方案。

迁移成本:挑你能离开的

锁定很重要。诚实排序:

  • pgvector:零锁定(就是 SQL,容易 dump 跟搬)
  • Qdrant 自架:低锁定(开源、多个云端供应商)
  • Qdrant Cloud / Weaviate Cloud:中等
  • Pinecone:高(专有、自定 indexing 语义)

刚起步、不确定的话,从 pgvector 开始。之后从 pgvector 搬到别的工具,成本比从 Pinecone 搬出去低很多。

决策树

  • 已经跑 Postgres、< 1000 万 vector:pgvector
  • 要自架、专门、hybrid search:Qdrant
  • ops 不够、愿意付钱:Pinecone
  • 需要 GraphQL 或强 opinionated stack:Weaviate
  • 在 Jupyter 做原型:Chroma
  • 中文圈内部、十亿规模:Milvus

下一步

  • 有 Postgres 先试 pgvector — 5 分钟能装好
  • 看一下 HNSW vs IVF index 了解调校旋钮
  • 研究 hybrid search(BM25 + vector)— 几乎永远赢纯 vector
  • 设好评估流程,让你能用真实数据比 DB,不是看厂商 benchmark

最后更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more