Appearance
向量数据库对比
向量数据库是 RAG 系统的核心存储层,负责高效存储和检索高维向量。选择合适的向量数据库直接影响 RAG 系统的延迟、吞吐量和可扩展性。本页对比当前主流向量数据库在架构、性能、功能和运维上的差异。
对比概览
| 维度 | Pinecone | Weaviate | Milvus/Zilliz | Chroma | Qdrant | pgvector | Redis |
|---|---|---|---|---|---|---|---|
| 开源性 | 闭源 (托管) | 开源 (BSD) | 开源 (Apache 2.0) | 开源 (Apache 2.0) | 开源 (Apache 2.0) | 开源 (PostgreSQL 扩展) | 开源 (BSD) |
| 部署方式 | 全托管 SaaS | 自托管 / 托管 | 自托管 / 全托管 | 嵌入式 / 服务端 | 自托管 / 托管 | PostgreSQL 扩展 | 自托管 / 托管 |
| 最大规模 | 数十亿向量 | 十亿级 | 千亿级 | 百万级 | 十亿级 | 亿级 | 千万级 |
| 向量维度 | 20,000 | 65,536 | 32,768 | 无限制 | 65,536 | 16,000 | 16,000 |
| 索引类型 | HNSW | HNSW + 实验性 | HNSW / IVF / DiskANN | HNSW | HNSW | HNSW / IVF | FLAT / HNSW |
| 混合搜索 | 稀疏向量 | BM25 + 向量 | 多向量 + 全文 | 基础过滤 | 全文 + 向量 | PostgreSQL 全文 | 无 |
| 元数据过滤 | 基础 | 强 (GraphQL) | 强 (表达式) | 基础 | 强 | SQL (最强) | 基础 |
| 多租户 | 命名空间 | 类级隔离 | 分区/集合 | 集合 | 集合 | Schema 隔离 | 无 |
| 云原生 | ★★★★★ | ★★★★☆ | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★★☆ | ★★★☆☆ |
| 定价模式 | 按存储+查询 | 自托管免费 / 托管按量 | 开源免费 / 托管按量 | 免费 | 自托管免费 / 托管按量 | 免费 (PostgreSQL) | 按内存 |
关键差异
托管 vs 自托管
全托管(Pinecone、Zilliz Cloud):
- 零运维,自动扩缩容
- 适合快速启动和团队缺乏基础设施经验
- 成本较高(Pinecone 约 $0.10/百万查询 + 存储费)
- 数据需出境(除非选择特定区域)
自托管(Milvus、Qdrant、Weaviate):
- 完全控制,数据不出境
- 需要运维能力(Kubernetes、监控、备份)
- 成本主要为硬件(云服务器或本地)
- 适合有合规要求或大规模场景
嵌入式(Chroma):
- 直接嵌入 Python 进程,无需独立服务
- 适合原型开发、本地 RAG、小型应用
- 生产环境扩展性有限
架构设计哲学
Pinecone — "向量搜索即服务":
- 极简 API,无索引调参
- 自动选择最优索引参数
- 牺牲灵活性换取易用性
- 适合不想关心底层细节的团队
Milvus — "云原生向量数据库":
- 存储计算分离架构
- 支持多种索引算法(HNSW、IVF_FLAT、DiskANN)
- 千亿级向量支持
- 与 Kubernetes 深度整合
- 适合超大规模、高并发场景
Weaviate — "AI-native 数据库":
- 内置向量化(可选模块)
- GraphQL 查询接口
- 模块化架构(可插拔 embedding、reranker)
- 适合需要复杂查询和模块化设计的应用
Qdrant — "高性能 Rust 实现":
- Rust 编写,性能优异
- 内置过滤和全文搜索
- 量化支持(Scalar、Product)降低内存
- 适合对延迟敏感的生产环境
pgvector — "PostgreSQL 原生":
- 作为 PostgreSQL 扩展存在
- 最强元数据过滤(完整 SQL 能力)
- 事务支持、ACID 合规
- 适合已有 PostgreSQL 基础设施的团队
- 但纯向量性能不如专用数据库
性能基准
Approximate nearest neighbor (ANN) 搜索性能(1M 向量,768 维,recall@10 ≥ 0.95):
| 数据库 | 查询延迟 (p99) | 吞吐量 (QPS) | 内存占用 |
|---|---|---|---|
| Qdrant | 5-10ms | 2,000+ | 中等 |
| Milvus (HNSW) | 8-15ms | 1,500+ | 高 |
| Pinecone | 10-20ms | 1,000+ | 不透明 |
| Weaviate | 15-25ms | 800+ | 高 |
| pgvector | 20-50ms | 500+ | 低 |
| Chroma | 30-100ms | 200+ | 低 |
注:实际性能高度依赖硬件配置、索引参数和数据分布。
混合搜索能力
现代 RAG 系统通常需要混合搜索——结合向量相似度和关键词匹配:
| 数据库 | 混合搜索方式 | 特点 |
|---|---|---|
| Pinecone | 稀疏-密集向量 | 单独存储稀疏向量,查询时融合 |
| Weaviate | BM25 + 向量 | 内置 BM25,GraphQL 统一查询 |
| Milvus | 多向量 + 全文 | 支持多个向量字段 + 倒排索引 |
| Qdrant | 全文 + 向量 | 内置全文索引,过滤后向量搜索 |
| pgvector | SQL 混合 | PostgreSQL 全文搜索 + 向量相似度 |
| Chroma | 基础过滤 | 元数据过滤 + 向量搜索 |
推荐:如果混合搜索是核心需求,Weaviate 和 Milvus 的功能最完善;如果已有 PostgreSQL,pgvector 的 SQL 混合最灵活。
决策矩阵
| 场景 | 推荐数据库 | 理由 |
|---|---|---|
| 快速启动、零运维 | Pinecone | 托管服务,API 极简 |
| 超大规模(十亿级向量) | Milvus / Zilliz | 云原生架构,水平扩展 |
| 低延迟生产环境 | Qdrant | Rust 实现,性能最优 |
| 复杂查询、模块化设计 | Weaviate | GraphQL,内置向量化 |
| 已有 PostgreSQL 基础设施 | pgvector | 零新增运维,SQL 强大 |
| 原型开发、本地 RAG | Chroma | 嵌入式,Python 原生 |
| 缓存 + 向量混合场景 | Redis | 已有 Redis 时扩展向量能力 |
| 多租户 SaaS | Milvus / Qdrant | 集合隔离,权限控制 |
| 金融/医疗合规 | pgvector / Milvus | 数据不出境,审计友好 |
与 Embedding 模型的配合
向量数据库本身不生成向量,需要配合 Embedding 模型 使用:
文档 → Embedding 模型 → 向量 → 向量数据库 → 相似度检索 → 候选文档| 数据库 | 内置 Embedding | 支持模型 |
|---|---|---|
| Pinecone | 否 | 任意 |
| Weaviate | 是 (模块) | OpenAI、Cohere、HuggingFace 等 |
| Milvus | 否 | 任意 |
| Chroma | 是 (默认) | sentence-transformers、OpenAI 等 |
| Qdrant | 否 | 任意 |
| pgvector | 否 | 任意 |
Weaviate 和 Chroma 的内置向量化降低了入门门槛,但生产环境通常建议解耦(独立 embedding 服务 + 向量数据库)。
运维考量
| 维度 | Pinecone | Milvus | Qdrant | Weaviate | pgvector |
|---|---|---|---|---|---|
| 备份恢复 | 自动 | 工具支持 | 快照 | 快照 | PostgreSQL 原生 |
| 监控 | 内置仪表板 | Prometheus | Prometheus | Prometheus | PostgreSQL 生态 |
| 版本升级 | 自动 | 手动/滚动 | 手动 | 手动 | PostgreSQL 升级 |
| 高可用 | 自动 | K8s 部署 | 副本集 | K8s 部署 | PostgreSQL HA |
| 学习曲线 | 极低 | 中等 | 低 | 中等 | 低(会 SQL 即可) |
成本估算(月)
以 1000 万向量、768 维、日均 10 万查询为例:
| 方案 | 估算月成本 | 说明 |
|---|---|---|
| Pinecone (标准) | $200-400 | 按存储 + 查询计费 |
| Zilliz Cloud | $300-500 | 按 CU 计费 |
| Milvus 自托管 (AWS) | $150-300 | r6g.2xlarge × 2 |
| Qdrant 自托管 | $100-200 | 单节点即可 |
| pgvector (RDS) | $100-200 | db.r6g.xlarge |
| Chroma | $0-50 | 嵌入式或轻量服务端 |
相关页面
- Vector Databases — 向量数据库技术原理
- Embedding Models / Vector Representations — Embedding 模型选型
- Embedding 模型对比 — Embedding 模型对比
- Semantic Search — 语义搜索实现
- Retrieval Augmented Generation — RAG 系统构建
参考来源
Pinecone Documentation (2025). docs.pinecone.io
Milvus Documentation (2025). milvus.io/docs
Qdrant Documentation (2025). qdrant.tech/documentation
Weaviate Documentation (2025). weaviate.io/developers
pgvector GitHub (2025). github.com/pgvector/pgvector
ANN-Benchmarks (2025). ann-benchmarks.com
Large Language Model (LLM) — 大语言模型的核心定义、技术原理与发展历程