开沿科技
13305079753先填 5 道题
方法论与思考

向量数据库怎么选?Milvus/Qdrant/PGVector/Weaviate/腾讯云 5 家对比

开沿研发中心·2026-06-14·15 分钟阅读

去年底到今年,开沿接触的企业 AI 项目里,几乎每一个都要回答同一个问题:知识库的向量存到哪里?有人一上来就要上 Milvus 集群,结果跑了半年发现总数据量还没破百万;也有人坚持用 Excel 加 Python 内存检索,结果数据涨到几十万就崩了。

向量数据库选型其实没那么神秘,但确实容易踩两个坑:一个是「过度工程」,为还没到来的规模付出高昂的运维成本;另一个是「撞墙重做」,到了瓶颈才发现迁移成本远比想象中高。这篇文章把开沿在 RAG 项目里的踩坑经验整理出来,按规模分档给出选型建议。

1. 向量数据库到底在做什么

RAG(Retrieval-Augmented Generation,检索增强生成)的核心动作很朴素:把企业文档切片,过一遍 Embedding 模型变成几百到几千维的向量,存起来;用户提问时把问题也变成向量,去库里找最相似的几条文档片段,拼到 Prompt 里交给大模型回答。

向量数据库就是这个流程里负责「存」和「找」的基础设施。它和传统数据库的关键差别在于:传统数据库找「等于某个值」的行很快,但找「和某个向量最相似的前 K 个」就要扫全表;向量数据库通过 HNSW、IVF、PQ 等近似最近邻索引,把这个查询从 O(N) 拍到接近 O(logN)。

除了近邻检索,生产场景还会要求几样东西:

  • 结构化字段过滤:只在某个部门、某个时间段、某个文档类型里检索;
  • 混合检索:向量相似度 + 关键词倒排(BM25)联合打分;
  • 水平扩展:单机内存放不下时能分片;
  • 持久化和备份:内存索引怎么落盘、宕机怎么恢复。

5 家产品的差异,主要就体现在这几个维度上。关于 RAG 的整体落地方法,可以参考企业知识库 RAG 落地的 6 个关键决策AI Agent 的记忆、工具与 RAG

2. 5 家定位速览

产品 类型 一句话定位
Milvus 开源 面向超大规模的分布式向量库,云厂商也提供托管版(Zilliz)
Qdrant 开源 Rust 写的轻量级向量库,单机性能扎实,API 设计干净
PGVector PostgreSQL 扩展 把向量检索能力直接嵌进 PostgreSQL,零额外组件
Weaviate 开源 模式(schema)灵活,原生支持混合检索和模块化 Embedding
腾讯云 VectorDB 国内云托管 国内云生态,按量计费,合规友好

需要说明的是,向量数据库这个赛道还在快速演进,Pinecone、Chroma、LanceDB、阿里云 OpenSearch 向量版等也都是常见选项。这里挑出来的 5 家,覆盖了「自建-托管」「轻量-重型」「通用-国内云」几个组合,对国内中小企业项目而言比较有代表性。

3. 5 个维度横向对比

下表是开沿在做选型时常用的一张参考表,数字偏经验性,具体到你的业务还要做基准测试:

维度 Milvus Qdrant PGVector Weaviate 腾讯云 VectorDB
适用规模 千万-百亿级 百万-亿级 十万-百万级 百万-亿级 百万-十亿级
单机性能 中(强项是分布式) 中-高 中(吃 PG 调优) 中-高 不适用(托管)
部署难度 高(依赖 etcd/MinIO/Pulsar 等) 低(单二进制起步) 极低(已有 PG 装个扩展) 中(Docker 起步) 零(开通即用)
价格区间 自建只算硬件;托管随规模上万 自建友好;托管中等 几乎零额外成本 自建中等;托管中等 按量计费,PoC 阶段几百起
生态成熟度 中-高,社区活跃 中,文档清晰 高(PG 生态加持) 中,模块化 国内 SDK/客服更顺手
合规友好度 自建可控 自建可控 自建可控 自建可控 国内云原生,过等保更顺

几个常被忽略的点:

  • 部署难度的隐藏成本:Milvus 单机 Standalone 还好,集群版的运维门槛不低,对中小团队是实打实的负担;
  • PGVector 的性能受 PG 整体配置影响:work_mem、maintenance_work_mem、shared_buffers 没调好,索引构建可能慢到怀疑人生;
  • Weaviate 的混合检索是出厂自带,其他几家要自己拼 BM25 + 向量的两路召回。

4. 10 万向量以下:PGVector 就够,别折腾

如果你的全量文档切片之后向量数量在 10 万以下,开沿的建议非常明确:用 PGVector,别折腾。

理由有三个:

  1. 业务大概率已经有 PostgreSQL:再加一个组件意味着新的备份策略、新的监控、新的人员培训,运维同事会有意见;
  2. PG 的事务和 SQL 能力是白送的:向量召回后做权限过滤、按业务字段排序、和订单/工单数据 JOIN,PG 都能一条 SQL 搞定,专用向量库要么不支持要么很别扭;
  3. HNSW 在百万级以内的查询延迟完全够用:对话式 AI、内部知识助手这类场景,P95 在 100-300ms 是相对容易达到的。

开沿做过的几个内部知识库项目,从产品手册、内部 wiki、合同模板加起来,向量数量基本都在几万到几十万级,PGVector 跑得很稳。整套架构干净,AI 网关 + 大模型路由 + PG(业务表 + 向量表),就这三层。关于多模型路由的选择,可以看AI Router 多模型路由策略

-- PGVector 的典型用法,建表 + HNSW 索引
CREATE EXTENSION IF NOT EXISTS vector;

CREATE TABLE doc_chunks (
  id BIGSERIAL PRIMARY KEY,
  doc_id BIGINT,
  dept_id INT,
  chunk_text TEXT,
  embedding VECTOR(1024)
);

CREATE INDEX ON doc_chunks
  USING hnsw (embedding vector_cosine_ops)
  WITH (m = 16, ef_construction = 64);

-- 带权限过滤的检索查询
SELECT id, chunk_text,
       1 - (embedding <=> $1) AS score
FROM doc_chunks
WHERE dept_id = ANY($2)
ORDER BY embedding <=> $1
LIMIT 10;

5. 10 万到 1 亿:Qdrant 和 Milvus 二选一

数据量上到几百万、几千万规模,PGVector 开始吃力的信号通常是:索引构建时间从分钟拉到小时、单次查询尾延迟(P99)变得不稳定、写入吞吐被索引维护拖慢。这个阶段就要考虑专用向量库。

Qdrant 和 Milvus 是这个区间最常被对比的两家。开沿的经验是:

优先考虑 Qdrant 的场景

  • 团队是 5-15 人的小团队,运维资源紧张;
  • 业务是单数据中心、单地域,暂时不需要跨机房部署;
  • 强调过滤条件复杂(多字段、范围查询),Qdrant 的过滤引擎设计得很干净;
  • 喜欢 Rust 生态、想要单二进制部署的简洁感。

优先考虑 Milvus 的场景

  • 已经预期会做到亿级规模,希望一次到位避免再迁;
  • 团队有 K8s 和分布式系统运维经验,能 hold 住 etcd、对象存储、消息队列这一套;
  • 需要多种索引类型(IVF_PQ、DiskANN 等)做不同的内存/磁盘权衡;
  • 想直接用 Zilliz Cloud 托管版省掉运维。

两家都支持向量量化(标量量化、二值量化)来压缩内存占用,这对降低成本帮助不小。

6. 1 亿向量以上:Milvus 或托管型云服务

向量数量到了亿级、十亿级,问题就不再是「能不能跑」,而是「怎么扩容、怎么省钱、怎么保证 SLA」。这个阶段开沿见过的实际选择有两类:

  • 自建 Milvus 集群:适合有专职 AI 基础设施团队、对成本敏感、数据合规要求高、必须自建的场景。集群规模通常起步就要 10+ 节点,etcd、Pulsar、对象存储一套都要做高可用;
  • 国内云托管 VectorDB:腾讯云 VectorDB、阿里云 OpenSearch 向量版、百度 VectorDB 等。优势是开通即用,扩容是云厂商的事,按量计费在业务波动期成本更可控;合规上做等保、过监管也更顺。

亿级以上还要关注几个工程细节:

  • 冷热分层:高频访问的近期数据放内存索引,历史归档数据放磁盘索引(如 Milvus 的 DiskANN);
  • 多副本读扩展:写主读从,QPS 压力大时直接横向加只读副本;
  • 业务分区:按租户、按业务线物理分集合(collection),避免某一个大客户的查询把整个集群拖慢。

关于数据合规和安全的更系统讨论,可以看AI Agent 企业数据安全AI 合规与 PIPL 的企业落地

7. 中小企业的现实选择:先用 PGVector,撞墙再迁

开沿过去一年接触的客户里,绝大多数中小企业问的是「我应该上 Milvus 还是 Qdrant」,但实际数据量评估下来,半数以上其实根本没必要离开 PGVector。

这背后有一种常见的认知偏差:把「未来三年的理论上限」当成「现在就要支撑的容量」。结果就是:

  • 团队花两到三个月部署一套 Milvus 集群,又花一个月做 SRE 培训;
  • 实际跑了一年,向量数量只增长到几十万;
  • 等真正撞墙的时候,集群版本已经落后两代,又要做升级和数据迁移。

更现实的路径是:

  1. PoC 和上线初期用 PGVector:和业务 PG 共用一套,几乎零额外成本;
  2. 建监控:盯住向量总数、单次检索 P95/P99 延迟、HNSW 索引构建时长;
  3. 当任一指标越线(如 P95 持续高于 300ms 或索引构建超过 4 小时),启动迁移评估:评估目标可以是 Qdrant、Milvus 或云上托管;
  4. 迁移本身是个明确的项目:两到四周窗口、灰度切流、保留回退方案。

这套打法和AI Agent 落地路线图里讲的「先跑通业务闭环再上生产级基础设施」的逻辑是一致的:基础设施服务业务,不是反过来。

8. 和现有 PostgreSQL 整合的成本

如果业务系统的核心数据已经在 PostgreSQL,向量库和 PG 之间的整合就是个绕不开的工程题。三种典型架构:

架构 A:PG + PGVector,一体化

  • 优点:一套数据库、一套备份、一套权限、SQL JOIN 即可;
  • 缺点:规模天花板低,PG 调优经验要求高;
  • 适用:10 万到几百万向量、强 SQL/事务依赖的业务。

架构 B:PG + 专用向量库(Milvus/Qdrant),双库

  • 优点:检索性能上限高,向量库可独立扩容;
  • 缺点:数据双写或异步同步要处理一致性、跨库 JOIN 要在应用层做;
  • 适用:千万级以上、检索 QPS 高、可接受最终一致的场景。

架构 C:PG + 云上托管向量库

  • 优点:运维零负担、按量付费;
  • 缺点:跨网络调用延迟比同机房高、出网带宽和合规要算清楚;
  • 适用:业务在云上、PoC 阶段、不愿意自建运维。

下面这张表是开沿做选型评审时常用的快速对照:

架构 数据一致性 运维成本 性能上限 推荐规模
A: PG + PGVector 强一致(同库事务) 极低 10 万-百万
B: PG + 自建向量库 最终一致 中-高 百万-亿级
C: PG + 云托管 最终一致 极低 任意(成本随规模涨)

实际项目里,开沿见过最稳的组合往往不是最炫的那个,而是和团队能力、业务规模、合规要求都对齐的那个。

9. 决策树和决策表

一张图说清楚怎么选:

当前/12个月内向量总量预估?
├── ≤ 10万         → PGVector(直接和业务库一起)
├── 10万 - 1000万   → PGVector 起步,撞墙再迁 Qdrant
├── 1000万 - 1亿    → Qdrant(小团队)/ Milvus(有 K8s 能力)
└── ≥ 1亿          → Milvus 自建集群 / 国内云托管 VectorDB
                       └── 强合规/必须自建 → Milvus
                       └── 想省运维/按量计费 → 云托管

汇总成一张决策表:

你的情况 推荐组合 备选
内部知识库、几万到几十万向量 PG + PGVector Qdrant 单机
客户侧 RAG 应用、百万级、追求简洁 Qdrant 单机 PGVector
多租户 SaaS、千万级、有 K8s 能力 Milvus 集群 Qdrant 集群
亿级以上、需要弹性扩容 云托管 VectorDB 自建 Milvus
强等保合规、必须本地化 自建 Milvus 自建 Qdrant
已经重度使用 PostgreSQL、规模不大 PG + PGVector 暂无必要切换

结语

向量数据库选型这件事,难点不在「哪个产品技术上更好」,而在「我的业务现在到底需要哪一档」。开沿这一年做下来的体感是:先用 PGVector 验证业务价值,撞墙再迁,比一开始就上分布式集群要稳得多。AI Coding 和 AI Agent 的浪潮把基础设施话题推到了前台,但工程的常识没有变——为现在的问题选合适的工具,而不是为想象中的未来过度投资。

如果你正在做 RAG 项目的选型评估,可以再看看AI Agent 厂商选型避坑AI Agent 开发成本拆解这两篇,把基础设施成本算清楚再下决策,路会走得更稳。

常见问题

基于这个话题最常被问到的 4 个具体问题

Q1. PGVector 性能能撑到多少向量规模?

在合理硬件(16-32 核、64-128GB 内存、NVMe SSD)和 HNSW 索引配置下,PGVector 处理百万级向量、单次查询 P95 控制在百毫秒内是相对常见的。十万级几乎无压力。撑到千万到亿级时,写入吞吐、索引构建时间和查询尾延迟会出现明显劣化,这个时候才需要考虑专用向量库。

Q2. 云上向量数据库贵不贵?

按使用量计费的话,几十万到几百万向量规模,月度成本通常在数百到几千元区间,看 QPS 和存储;上亿向量、高 QPS 的生产场景才会进入万元以上区间。和自建相比,省下的是运维和扩容工程师的工时,建议在 PoC 阶段先用云上托管验证业务价值,规模稳定后再评估自建。

Q3. 切换向量数据库要重新做检索吗?

Embedding 模型不变的情况下,向量本身可以直接迁移,不需要重新过模型;但索引参数(HNSW 的 M、ef 等)、过滤字段的 schema、查询 API 都要重新适配,业务侧的召回测试也要跑一遍。预算上建议留出两到四周的迁移和回归测试窗口。

Q4. 国产向量数据库稳定吗?

腾讯云 VectorDB、阿里云 OpenSearch 向量版、百度 VectorDB 等国内云厂商的托管产品,已经在不少国内 AI 项目中跑生产了,SLA 和稳定性按云厂商标准走。开源侧 Milvus 本身就是国内团队主导的项目,社区活跃度和迭代速度都不算弱。稳定性更多取决于团队对自己业务负载的压测,而不是产品产地。

开沿研发中心

开沿研发中心

开沿科技的方法论与技术团队,把一线交付中的经验沉淀成可复用的方法。了解研发中心 →

4
深耕企业数字化交付
800+ 单
累计项目交付
600+ 家
服务企业客户
钉钉认证
官方认证服务商
把方法用起来

想就你公司当前的状况,聊一下下一步从哪切

看完文章你应该能判断大方向。如果想就具体场景再细聊「第一步先做哪个 / 现有系统能不能复用 / 大概多长周期」,可以加我们顾问微信——30 分钟,免费方案诊断。

看客户案例