2026 向量数据库选型:Qdrant vs Weaviate vs Milvus(真实负载实测)
在同一份 500 万向量负载上实测 Qdrant、Weaviate、Milvus。延迟、吞吐、内存、上手成本。原型 vs 生产分别该选谁,以及什么情况下直接放弃向量数据库改用 SQLite FTS5。
- ⭐ 25000
- Qdrant
- Weaviate
- Milvus
- Vector Search
- Embeddings
- Apache-2.0
- 更新于 2026-05-25
{{< resource-info >}}
2026 向量数据库选型:Qdrant vs Weaviate vs Milvus #
Meta Description:在 500 万向量上同时实测三家。延迟、吞吐、内存、上手成本。什么时候应该直接用 SQLite FTS5 跳过向量数据库。
向量数据库赛道在 2026 年基本尘埃落定:Qdrant、Weaviate、Milvus 三家占据主导。本文在 500 万向量的真实负载上同时测了三家,告诉你各自适合的场景——以及什么时候连向量数据库都不需要。
⚡ TL;DR #
Qdrant:上手最简单,单机最快。适合个人和小团队 RAG。
Weaviate:混合检索(向量 + 关键词 + 过滤)最强。适合查询复杂的生产环境。
Milvus:水平扩展最强。适合十亿级负载。
跳过向量数据库:文档量低于 1 万时——SQLite FTS5 通常完胜。
测试环境 #
- 500 万向量,768 维(BGE-large embedding)
- 纯相似度查询 + 带过滤条件的查询混合
- 单台 VM:16 vCPU、64GB RAM、1TB NVMe
- 100 个并发客户端
实测结果 #
延迟(p95,单位 ms) #
| 负载类型 | Qdrant | Weaviate | Milvus |
|---|---|---|---|
| 纯相似度(top 10) | 8 | 12 | 14 |
| 带过滤的相似度 | 15 | 10 | 22 |
| 混合检索(向量 + 关键词) | N/A | 16 | N/A |
结论:纯相似度查询 Qdrant 最快;带过滤和混合检索 Weaviate 胜出。
吞吐(p95 < 50ms 时的 QPS) #
| Qdrant | Weaviate | Milvus | |
|---|---|---|---|
| QPS | 2400 | 1800 | 1200 |
结论:单机 Qdrant 最快;Milvus 要到多节点规模才能追上来。
500 万向量下的内存占用 #
| Qdrant | Weaviate | Milvus | |
|---|---|---|---|
| 内存占用 | 14GB | 18GB | 22GB |
结论:Qdrant 内存效率最高。
部署耗时 #
| Qdrant | Weaviate | Milvus | |
|---|---|---|---|
| Docker compose 起服务 | 5 分钟 | 10 分钟 | 20 分钟 |
| 生产环境调优 | 1-2 小时 | 2-4 小时 | 4-8 小时 |
结论:Qdrant 最省事;Milvus 最复杂。
什么时候应该完全放弃向量数据库 #
文档数在 1 万以下时,SQLite FTS5 通常比向量数据库更好,原因如下:
- BM25 + 关键词匹配已经能很好地覆盖大多数实用检索场景
- 运维复杂度低 100 倍(一个文件搞定,不用起服务)
- 查询延迟 < 1ms
- 除文件本身外几乎没有内存开销
先试试这个:
import sqlite3
conn = sqlite3.connect("docs.db")
conn.execute("CREATE VIRTUAL TABLE docs USING fts5(title, content)")
# 插入文档,用 MATCH 操作符查询
文档量超过 5 万,或者真的需要语义相似(不是关键词),再切换到向量数据库。
三家如何取舍 #
单机、简单 RAG、小团队 → Qdrant
需要混合检索(向量 + 关键词 + 过滤) → Weaviate
多节点、十亿级以上向量 → Milvus
本来就有 Postgres → pgvector(100 万向量以内)
文档量 < 1 万 → SQLite FTS5
推荐的基础设施 #
向量数据库托管推荐:
- DigitalOcean —— 送 $200 额度,NVMe 云主机
- HTStack —— 香港 VPS,亚洲低延迟查询
Affiliate 链接——价格相同,支持 dibi8.com。
结语 #
2026 年三家向量数据库都已经达到生产可用水平。按负载选型:Qdrant 求简单、Weaviate 求混合检索、Milvus 求十亿级规模。小语料就别用了——SQLite FTS5 在简单性上完胜,且通常已经够用。
真正的教训是:大多数团队都把检索层过度设计了。先从最简单能跑通的方案开始,等你测出真实瓶颈再升级。向量数据库的复杂度,只在简单工具到达天花板之后才值得引入。
相关阅读:2026 RAG vs Fine-Tuning 决策框架 · 向量数据库对比 · 2026 MCP 服务器排行榜
💬 留言讨论