2026 年向量数据库选型

在同样的 500 万向量负载下实测 Qdrant、Weaviate、Milvus:延迟、吞吐量、内存占用、配置难度。哪个适合原型、哪个适合生产环境,以及什么时候该完全跳过向量数据库改用 SQLite FTS5。

  • ⭐ 45120
  • Qdrant
  • Weaviate
  • Milvus
  • Vector Search
  • Embeddings
  • Apache-2.0
  • 更新于 2026-05-25

Meta Description:在 500 万向量规模上实测了这三个。延迟、吞吐量、内存占用、配置难度。什么时候该跳过向量数据库改用 SQLite FTS5。

向量数据库这个领域在 2026 年格局已定。Qdrant、Weaviate、Milvus 三足鼎立。这篇文章在 500 万向量负载下实测这三个,告诉你什么场景该用哪个——以及什么时候该完全跳过向量数据库。

⚡ 太长不看 #

Qdrant:配置最简单,单节点最快。个人/小团队做 RAG 的首选。

Weaviate:混合搜索(向量+关键词+过滤)最强。适合有复杂查询需求的生产环境。

Milvus:水平扩展能力最强。适合十亿级向量负载。

如果文档量 < 1 万,跳过向量数据库——SQLite FTS5 往往更划算。

测试环境 #

  • 500 万向量,768 维(BGE-large 嵌入)
  • 混合了纯相似度查询和带过滤条件的查询
  • 单台虚拟机:16 vCPU,64GB 内存,1TB NVMe
  • 100 个并发客户端

结果 #

延迟(p95,毫秒) #

负载类型QdrantWeaviateMilvus
纯相似度(Top 10)81214
带过滤的相似度151022
混合(向量+关键词)不适用16不适用

结论:纯相似度搜索 Qdrant 最快。过滤+混合搜索 Weaviate 胜出。

吞吐量(p95 < 50ms 时的每秒查询数) #

QdrantWeaviateMilvus
QPS240018001200

结论:单节点 Qdrant 最快。多节点规模下 Milvus 能追上来。

500 万向量时的内存占用 #

QdrantWeaviateMilvus
内存占用14GB18GB22GB

结论:Qdrant 内存效率最高。

配置耗时 #

QdrantWeaviateMilvus
Docker compose5 分钟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 的 Droplet
  • HTStack — 香港 VPS,亚洲低延迟查询

联盟链接——同样的价格,支持 dibi8.com。

结语 #

这三个向量数据库在 2026 年都已经是生产就绪的状态。按负载类型来选:追求简单选 Qdrant,混合搜索选 Weaviate,十亿级规模选 Milvus。小规模语料库完全可以跳过它们——SQLite FTS5 在简洁性上胜出,而且往往已经够用。

真正的教训是:大多数团队都把自己的检索层过度设计了。先用能跑通的最简单方案起步,等你真的测出了明确的天花板再升级。向量数据库的复杂度,只有在超过"简单工具"够用的临界点之后才值得。


相关文章RAG vs 微调 2026 决策框架 · 向量数据库对比 · 2026 年 MCP 服务器排行榜

参考与来源 #

📦 出现在以下合集中

💬 留言讨论