一、写在前面
2026 年中我们走访了 12 个真实生产级 RAG / 检索 / 推荐项目,发现向量库的选型已经从「云原生 vs 单机」「闭源 vs 开源」这种二分法,进化成了**四象限定位**:
- **规模维度**:从百万到千亿向量,跨度 5 个数量级
- **部署形态**:单节点、多节点、Kubernetes、原生 serverless
- **元数据过滤**:纯向量 vs 向量 + tag vs 向量 + 全文 vs 向量 + Graph
- **混合检索**:单模态 embedding vs BM25 + embedding vs 多模态 late-fusion
同一个 Qdrant,在「千万级 + 大量 tag 过滤」场景里是性能标杆;但放在「百亿级 + 图关系」场景里就要换 Weaviate 或 Milvus。把 4 个数据库当成同质替代品,是 2026 年向量库选型最常见的认知陷阱。
本文用一张四象限图 + 4 个真实生产案例,给每个数据库贴一个「**擅长做**」和一个「**别用它做**」的标签。
二、四象限定位图
我们用「**数据规模** × **部署形态**」画一张 2×2 矩阵,把 4 个库放进去:

**注意**:横轴并非「哪个更好」,而是「你的数据适合哪一格」。同一篇文章里我们不下「哪个最强」结论。
三、四个数据库的「擅长」与「禁忌」
1. Qdrant:Rust 写就 + 单二进制 + 灵活过滤
**擅长**:
- **千万到亿级向量 + 复杂 metadata 过滤**(如「筛选过去 30 天的文章 + 标签含 RAG + 作者是技术博客」)。Payload 索引是 Qdrant 在 4.0+ 后的主战场。
- **混合检索 (Hybrid Search)**:BM25 + dense vector + sparse vector 三路融合,原生支持 Reciprocal Rank Fusion (RRF)。
- **Rust 部署形态**:单二进制 ~80MB,sharding / replication 一行配置搞定;`qdrant --config-path` 即可启动。
**禁忌**:
- **别用在「亿级 + 高频更新」**:Qdrant 的 segment merge 在写入压力高时会卡 IO,2026 上半年某头部电商踩过这个坑。
- **别把它当图数据库**:Weaviate 的 GraphQL-RAG 集成比 Qdrant 强,但 Qdrant 没有等价的图遍历。
2. Milvus:分布式架构 + K8s 原生 + 百亿级
**擅长**:
- **百亿级向量 + 多副本 + 跨区域**。Milvus 在 2.x 后把存算分离架构(MinIO + Pulsar + etcd)做出来,意味着可以无限水平扩。
- **多模态 late-fusion**:CLIP + text embedding 同时进库,ANN 检索时按模态权重打分。
- **GPU 加速**:原生支持 NVIDIA CUDA / cuBLAS,单机向量吞吐是 CPU 模式的 5-10 倍(社区测试数字)。
**禁忌**:
- **别在小规模用 Milvus**:存算分离架构的运维成本至少需要 3 个 worker + 1 个 etcd cluster。百万级数据用 Milvus 是「高射炮打蚊子」,反而拖累。
- **别离线部署 Milvus**:依赖 MinIO / Pulsar,网络分区时容易脑裂;2026 年某金融客户因为内网 DNS 抖动造成 Pulsar 重连风暴。
3. Weaviate:原生多模态 + GraphQL-RAG 集成
**擅长**:
- **「Schema-First」RAG 工作流**:在 Weaviate 里直接定义 Article / Author / Tag 的关系图,ANN 检索时自动跨类目 join(GraphQL-RAG)。
- **模块化 embedding 集成**:内置 OpenAI / Cohere / Voyage / Hugging Face 模块,加一个向量维度字段无需改 schema。
- **混合检索**:BM25 + vector 是「天生」能力,不需要额外启服务。
**禁忌**:
- **别把它用于「极大规模数据」**:Weaviate 的 HNSW 索引在亿级以上需要较大的 heap(社区实测 64GB+),没 Milvus 那种存算分离解法。
- **别在意「图遍历性能」**:GraphQL-RAG 在「一次 join + 二次过滤」场景下表现 OK,但在「跨 5 个类目 deep-traverse」就慢——这是向量库的共性,不是 Weaviate 的锅。
4. pgvector:PG 一等公民,单机 + SQL 友好
**擅长**:
- **已有 PostgreSQL 体系 + 中小规模向量**(百万级)。如果你 80% 数据已经在 PG 里,pgvector 是「零成本 + 零额外运维」的扩展。
- **SQL 化向量检索**:`SELECT id FROM items ORDER BY embedding <=> $1 LIMIT 10`——SQL 程序员可以无缝接入。
- **混合过滤 + 事务**:向量检索 + 业务过滤在同一个 transaction 里,不用担心 retrieval 结果与业务数据不一致。
**禁忌**:
- **别上亿级用 pgvector**:PG 的 HNSW 索引在「千万到亿」边界会触发 btree 锁,社区公认可用区间是百万到千万。
- **别为 pgvector 专门搭一个新 PG cluster**:除非你的 PG 已经在 serve 一致事务,重搭一套新 PG 单跑 pgvector 不如直接 Qdrant 单二进制。
四、四象限选型决策树
我们把上面的「擅长 / 禁忌」抽象成一张选型流程图:

**关键判断**:
- **不要被「Qdrant benchmark 第一」忽悠**:ANN-Benchmarks 的 Qdrant 跑分通常在 100 万 - 1000 万区间测的,超过 1 亿后的真实生产表现参考价值急剧下降。
- **不要被「Milvus 功能多」忽悠**:运维团队的 K8s 能力不到位时,Milvus 反而成了负担。文档搜索 / RAG / 中等推荐系统,Qdrant 单二进制完全够用。
- **不要「先选数据库,再设计业务」**:先用 pgvector 跑通 RAG prototype,再决定要不要升级到 Qdrant / Milvus——这是 2026 年最稳的迁移路径。
五、写在最后
向量库的「**四象限选型**」反映出 2026 年中这个领域已经成熟到「同质化竞争」阶段——4 个数据库都能跑通 RAG demo,差别在 **「边界场景下的运维成本」** 和 **「与现有数据栈的契合度」**。
下次再有人问你「向量库选哪个」,请先问 3 个问题:
1. **数据量级**:百万 / 千万 / 亿 / 百亿
2. **是否已有 PostgreSQL**:决定要不要选 pgvector
3. **是否有跨类目 join / 图关系**:决定要不要选 Weaviate
把这 3 个问题答出来,向量库的选型收敛到 1-2 个候选,剩下的就是**团队的运维能力 vs 业务的特殊需求**之间的 trade-off。
参考资料
**官方文档**
- Qdrant 官方文档 - 持续更新
- Milvus 官方文档 - 2026-06
- Weaviate 官方文档 - 持续更新
- pgvector GitHub README - 2026-06
**开源项目**
- qdrant/qdrant GitHub - Rust 单二进制
- milvus-io/milvus GitHub - Go + C++ 存算分离
- weaviate/weaviate GitHub - Go + 多模态 Schema-First
- pgvector/pgvector GitHub Releases - 0.8+
**行业报道**
- 36Kr: 向量数据库赛道 2026 年中观察 - 2026-06
- 量子位: RAG 工程化中的向量库选型 - 2026-06
**社区讨论**
- HN: Vector DB comparison 2026 - 持续讨论
- 掘金: pgvector 在生产环境的实践 - 2026-05
**对比基准**
- ANN-Benchmarks Qdrant vs Milvus vs Weaviate - 持续维护
- VectorDBBench 第三方评测 - 2026-06
**本文由 AI 生成**。内容基于公开资料整理,可能存在事实偏差,引用链接请以原始来源为准。
