2025年11月28日

7 款向量数据库实测

AI/LLM · 向量数据库 · 性能测试 · 架构设计

在 Docker 2H2G 限制下对 Zilliz、Milvus、Pinecone、Qdrant、Weaviate、Elasticsearch、Chroma 进行写入和读取性能测试,用数据说明哪款向量数据库更适合生产环境。

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

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

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

测试方法

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

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

性能对比

先看结论。

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

  1. 读写性能平衡,读取性能最强

  2. 社区成熟,文档完整度最高

  3. 支持分布式部署(基于 Kubernetes)

  4. 大部分专业向量数据库开源,不会被锁定

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

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

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

© 2026 d5v blog. 版权所有.

d5v blog

d5v blog