7 款向量数据库实测

作者:🧑‍🚀 deadmau5v 发布于 2025/11/28

项目需要向量数据库,团队最初用 PostgreSQL + pgvector 走通了流程。

但随着数据量增长,PostgreSQL 的性能和容量瓶颈越来越明显。

于是我做了一轮测试,对比 7 款主流向量数据库的读写性能。

测试方法

所有自部署数据库统一在 Docker 中限制 2 核 2GB 内存,使用 Python 脚本生成 10,000 条 1024 维向量进行测试。

主要指标是 QPS,即每秒处理的请求数。云服务因网络延迟影响,仅作参考。

性能对比

先看结论。

写入性能对比 (QPS)

Weaviate 2170 条/秒
100%
Chroma 1405 条/秒
65%
Qdrant 1044 条/秒
48%
Elasticsearch 920 条/秒
42%
Milvus 518 条/秒
24%
Zilliz (云) 2.37 条/秒

读取性能对比 (QPS)

Milvus 569 次/秒
100%
Weaviate 361 次/秒
63%
Qdrant 72.8 次/秒
13%
Elasticsearch 19.4 次/秒
Chroma 19.4 次/秒
Zilliz (云) 3.41 次/秒

Weaviate 写入最快,但 Milvus 读取遥遥领先。考虑到向量数据库的核心场景是相似性搜索,读取性能更重要。

各数据库详情

Milvus

( 开源向量数据库 )

读写性能平衡,很多大厂在用,社区成熟,文档完整。

测试结果

  • 写入:10,000 条向量,19.31 秒,517.91 QPS
  • 读取:10,000 次搜索,17.57 秒,569.09 QPS

特点

Zilliz

Zilliz 是 Milvus 的发起者和主要维护者,提供 Milvus 托管服务。采用 Serverless 按量计费,支持 PB 级数据。

测试结果

服务器在美国(最近的在新加坡),网络延迟严重影响性能:

  • 写入:1,000 条向量,422.71 秒,2.37 QPS
  • 读取:100 次搜索,29.36 秒,3.41 QPS

价格

  • Serverless: $0.3 / GB / 月
  • Standard: $99 / 月
  • 阿里云 Milvus: 最低 ¥2,500 / 月(4 服务节点 + 1 计算节点)

云服务不适合对延迟敏感的场景,自部署是更好的选择。

Qdrant

Qdrant 用 Rust 编写,性能优秀,社区成熟。

测试结果

  • 写入:10,000 条向量,9.58 秒,1043.88 QPS
  • 读取:10,000 次搜索,137.29 秒,72.84 QPS

特点

  • GitHub Star: 23K,DockerHub 10M+ 下载
  • 支持分布式部署(分片和复制)
  • 提供 Python、TypeScript、Rust、Java、C#、Go SDK

写入快但读取慢,读写性能不平衡。

Weaviate

Weaviate 性能良好,常与 Qdrant、Milvus 竞争。

测试结果

  • 写入:10,000 条向量,4.61 秒,2170.47 QPS
  • 读取:10,000 次搜索,27.70 秒,360.98 QPS

特点

  • GitHub Star: 13.3K
  • 云原生设计,支持 Kubernetes 部署
  • AI 原生,模块化,GraphQL API
  • 支持混合搜索和元数据过滤

写入性能最强,读取性能仅次于 Milvus。

Elasticsearch

老牌搜索引擎,支持全文搜索、向量搜索、语义搜索、混合搜索。

测试结果

  • 写入:10,000 条向量,10.87 秒,919.69 QPS
  • 读取:1,000 次搜索,51.62 秒,19.37 QPS

特点

  • GitHub Star: 72.6K
  • 功能丰富,社区庞大
  • 上手难度高,有专门的查询语言 Painless
  • 索引构建较慢

适合已有 Elasticsearch 基础设施的团队,否则学习成本较高。

Pinecone

老牌闭源向量数据库,服务器在美国(最近在新加坡)。

测试结果

延迟太高,插入一条要等几十秒,直接放弃测试。

价格

  • $25 / 月 + 写入 $4/M + 读取 $16/M

不推荐:延迟无法接受。

Chroma

Chroma 适合本地开发和原型设计,与 LLM 框架集成紧密。

测试结果

  • 写入:10,000 条向量,7.12 秒,1404.88 QPS
  • 读取:1,000 次搜索,51.66 秒,19.36 QPS

特点

  • GitHub Star: 20K
  • Python 优先,上手容易
  • 早期单机,新架构支持分布式

写入快,读取慢,适合原型开发。

特性对比

左右滑动查看完整表格
特性
推荐 Milvus
Qdrant
Weaviate
Elasticsearch
Chroma
开源
分布式部署
混合搜索
元数据过滤
社区成熟度
文档完整度
上手难度

结论

建议选用 Milvus

  1. 读写性能平衡,读取性能最强
  2. 社区成熟,文档完整度最高
  3. 支持分布式部署(基于 Kubernetes)
  4. 大部分专业向量数据库开源,不会被锁定

对于小型项目或大型项目前期,PostgreSQL + pgvector 可以先用着。数据量大了再迁移到 Milvus。

Milvus 官方文档:https://milvus.io/docs/zh

Milvus 配置计算器:https://milvus.io/zh/tools/sizing

标签:向量数据库性能测试MilvusAI数据库架构方案

评论

发表评论

加载评论中...