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