Milvus vs Qdrant(自托管,2026):分布式规模 vs 单二进制简洁性
两种 Apache-2.0 向量数据库,分处运维谱系的两端——十亿级分布式算力对决轻量单镜像部署。
对于大多数自托管团队来说,Qdrant 是更简洁、摩擦更小的选择——Apache-2.0 许可、Rust 编写、一个 Docker 镜像、原生混合搜索,以及一个在需要时可扩展为集群的单节点部署。Milvus 则是为 极大 规模构建的重量级方案——同样采用 Apache-2.0,核心为 Go,引擎使用 C++,有着强有力的吞吐量宣称,并且针对十亿级向量工作负载设计了分布式架构。两者都非常出色且完全开源,因此决策很少关乎质量——而是取决于你是否真正需要分布式规模,还是一个快速的单二进制就能满足你。如果向量数在几亿以下,Qdrant 的简洁性通常胜出;如果你计划处理数十亿级数据,Milvus 则是为此专门构建的。本文通过一个自己运维基础设施的团队视角对两者进行了正面比较。
两者都应进入任何认真自托管候选名单。如需更广泛的视野,请参阅我们的最佳自托管向量数据库指南;如果你还在犹豫是否需要专用引擎,可以先从什么是向量数据库入手。
并排比较
| Milvus | Qdrant | |
|---|---|---|
| 许可协议 | Apache-2.0 | Apache-2.0 |
| 核心语言 | Go 核心 + C++ 引擎 | Rust |
| GitHub 星标数(2026 年 6 月) | 44.8k | 32.4k |
| 混合搜索 | 是——同一集合内支持稠密+稀疏+全文搜索 | 原生支持——稠密+稀疏,一次查询内实现 RRF/融合 |
| 自托管(小规模) | Milvus Lite(嵌入式,pip install)或 Standalone(Docker) | 单个 qdrant/qdrant Docker 镜像 |
| 自托管(生产环境) | 分布式(Kubernetes,多组件) | 分布式/集群 |
| 设计规模 | 十亿级,极大工作负载 | 小到大规模;单节点到集群 |
| 托管云服务 | Zilliz Cloud——免费层;无服务器按量付费 | Qdrant Cloud——永久免费层;按用量计费 |
星标数为 GitHub 于 2026 年 6 月的约略数字,会随时间变化;许可协议和语言是稳定的决定性因素。
许可协议与语言
在许可上两者完全打平:Milvus 和 Qdrant 都采用 Apache-2.0,这是一种宽松、无 Copyleft 的许可,可安全嵌入商业产品而无需承担额外义务。如果许可纯净性是硬性要求,两者都没有出局——你可以自由地在产品内部署任一方案。
在实现语言上,两者分道扬镳,这大致反映了每个项目的脾性。
- Qdrant 用 Rust 编写——内存控制严格、性能可预测、无垃圾回收暂停。整个引擎是一个编译后的制品,这也是它部署如此简单的原因之一。
- Milvus 使用 Go 核心与 C++ 引擎——Go 负责协调与云原生基础设施(Go 是 Kubernetes 领域的通用语言),C++ 负责性能关键的向量引擎。这种拆分暗示了其设计思路:Milvus 被构建成一个 组件构成的分布式系统,而非单一进程。
对于通过 API 使用 数据库来说,使用哪种语言并不重要。但这些选择所反映的架构才是真正的区别——Qdrant 是精简的单引擎,Milvus 是多组件分布式平台。
混合搜索
两者都支持混合搜索——在单次查询中融合稠密向量相似度与稀疏/关键词匹配——因此都不需要像 pgvector 那样手动实现融合。
- Qdrant 通过 每个点支持多个命名向量 实现原生稠密+稀疏向量,并支持可配置的融合(例如 Reciprocal Rank Fusion)。这样可以对同一对象多个嵌入表示的存储与组合进行精细控制。
- Milvus 支持 语义+全文,稀疏和稠密向量可共存于 一个集合,因此无需额外挂接关键词引擎即可运行混合查询。
在能力上这几乎是平局。如果你需要对每个对象使用多种嵌入进行复杂操作,Qdrant 的命名向量模型更灵活;Milvus 的单集合稠密+稀疏+全文模型干净利落,并能随其架构的其余部分扩展。两者都很强大——混合搜索不是决定这场对决的维度。
性能与延迟
首先要诚实说明:向量数据库的基准测试结果依赖于召回率、数据集、维度及硬件,而且几乎总是由获胜的供应商发布。请将其视为方向性参考,而非权威结论。
- Qdrant 发布的基准测试声称在大多数场景下具有最高的每秒请求数(RPS)和最低的延迟,在某个数据集上大约 提升 4 倍 RPS,并且在 带过滤 搜索(向量相似度与元数据过滤结合)方面具有特殊优势。注意基准测试数据最后一次更新是在 2024 年。
- Milvus 声称(针对 Milvus 2.6)在 1M × 768 维的 VectorDBBench 运行中,内存减少约 72%,吞吐量提升约 4 倍;在与 Elasticsearch 召回率相同时,全文搜索吞吐量提升 3–4 倍(最高约 7 倍)。这些是规模与效率方面的宣称——当你的索引非常大时,这类数字最为重要。
注意表述上的差异。Qdrant 宣传的是原始 RPS、延迟和带过滤搜索性能——这些指标在中规模快速查询场景中最为重要。Milvus 则宣传大规模下的内存减少和吞吐量提升——当你存储数亿到数十亿向量且每向量成本占主导时,这些指标至关重要。对于绝大多数自托管工作负载(几百万向量以下),两者在尚可的硬件上都会足够快,你的嵌入模型和分块选择对端到端延迟的影响会大于数据库本身。在将性能作为决定因素之前,请在你的 实际数据 上进行基准测试。
自托管与运维
这是两者分歧最大的地方,通常也是做出选择的依据。
- Qdrant 以 单个官方 Docker 镜像(
qdrant/qdrant)形式交付。它开箱即可单节点运行——docker run之后你就拥有一个可运行的向量数据库——并在需要时扩展为分布式/集群部署。这是更轻量的运维足迹:只需运行、备份和监控一个服务。 - Milvus 提供了优雅的上手路径,但顶峰却很沉重。Milvus Lite 是嵌入式模式(
pip install),用于原型开发;Standalone 以单个 Docker/compose 部署运行,适用于中小规模使用。但其生产环境下的 分布式 模式是一个 多组件系统——它依赖对象存储、消息队列以及独立的协调器/工作器组件——专为十亿级规模设计,最好在 Kubernetes 上运行。这带来了巨大的能力,同时也意味着更多需要操作、理解和调试的内容。
一个有用的思维模型:运维负担与系统设计所针对的规模成正比。 Qdrant 位于高效的中部——轻量到可以在单台机器上运行,需要时可以进行集群扩展。Milvus 瞄准的是极大规模端,因此其分布式模式承载了十亿级规模所必需的复杂度。如果你想要一个真正的向量数据库而又不想搭建一个 Kubernetes 项目,Qdrant 的单镜像故事难以击败。如果你运营的规模使得 Milvus 的分布式架构成为 核心要点,那么这种复杂度正是在为你创造价值。
成本与定价
自托管两者意味着 软件是免费的——你的成本在于运行它所消耗的计算和存储资源。对于 Qdrant,中小规模索引可以轻松地运行在 每月约 20–30 美元 的 VPS 上(在 Hetzner 级别的宿主机上更便宜),因为你控制资源配额并运行单一服务。Milvus Standalone 在小工作负载下也可以运行在中等配置的机器上,但其分布式模式——包含对象存储、消息队列及多个组件——意味着明显更高的硬件需求。到了这个层级,你应该认真核算集群的成本,而不是假设一个固定的 VPS 账单。
作为参考,它们的托管云服务(托管价格,非 自托管成本)如下:
- Qdrant Cloud —— 永久 免费层(1 节点,0.5 vCPU / 1 GB 内存 / 4 GB 磁盘);付费标准版通过计算器按用量定价,无固定公开入门价格。
- Milvus / Zilliz Cloud —— 免费层(约 5 GB + 约 250 万 vCUs/月);无服务器按量付费(约每 100 万 vCUs 4 美元;存储 0.04 美元/GB-月);专用集群起价约 99 美元/月 (专用集群入门价格动态生成,为近似值)。
自托管者的要点:忽略托管价格标签,而考虑你将运行它的硬件成本。Qdrant 因为只有一个服务,所以将成本下限保持得很低;Milvus 分布式模式是真正需要更多机器(或集群)的选项——这就是十亿级规模的代价。
何时选择哪一方
选择 Qdrant 如果:
- 你想要最轻量的自托管足迹——一个 Docker 镜像,单节点起步,后续再扩展集群。
- 你的规模是从小到大(最多几亿向量),而非十亿级。
- 原始速度和 带过滤搜索 性能对你很重要。
- 你宁愿不运行多组件分布式系统或专门的 Kubernetes 项目。
选择 Milvus 如果:
- 你计划处理 十亿级 向量工作负载,并需要相应的吞吐量和内存效率。
- 你能够承担基于 Kubernetes 的分布式多组件系统的运维重量。
- 在极大规模下,每向量成本是首要考虑因素。
- 你想要 Milvus Lite 进行快速本地原型开发,然后无缝升级到同一引擎的大规模版本。
最终结论
对于大多数自托管团队来说,Qdrant 是更务实的选择——Apache-2.0、快速、原生混合搜索、单镜像部署,可在一台机器上运行,仅在需要时扩展成集群。Milvus 更适合真正运营极大规模的场景——其分布式架构和效率宣称专为数十亿向量构建,并在那种规模下体现了其运维重量。两者共享相同的许可证,且在混合搜索方面都表现出色,因此决策归结为一个诚实的问题:你真正需要的是分布式十亿级规模,还是一个可以简单运行的快速向量数据库? 如果是前者,Milvus 为此而生。如果是后者——对大多数团队而言这也是事实——Qdrant 以少得多的运维让你达成目标。
常见问题
Milvus 和 Qdrant 哪个更适合自托管? 对大多数团队而言,Qdrant——它以一个 Docker 镜像形式交付,开箱即可单节点运行,运维负担轻得多。Milvus 更适合当你真正需要分布式十亿级吞吐量,并且能承受其多组件 Kubernetes 架构重量时的选择。
Milvus 和 Qdrant 是否支持混合搜索? 是的,两者都支持,且可在单次查询中完成。Qdrant 使用原生稠密+稀疏向量,支持命名向量和可配置融合(例如 RRF)。Milvus 在同一集合内结合语义与全文,支持稀疏和稠密向量。两者都不需要手动实现融合。
Milvus 和 Qdrant 哪个更快? 取决于规模,最好在自有数据上测量。Qdrant 自身的基准测试(最近一次更新于 2024 年)声称高 RPS、低延迟以及在带过滤搜索方面的优势——在中低规模下表现强劲。Milvus 2.6 声称在大规模场景下(1M × 768 维 VectorDBBench)具有大幅内存减少和高吞吐量。对于几百万向量以下的大多数工作负载,两者都足够快。
Milvus 和 Qdrant 使用什么许可证? 两者都是 Apache-2.0——宽松许可,无 Copyleft。任何一种都可安全嵌入商业产品而无需承担额外义务,因此许可证并非两者之间的差异点。
什么时候值得为 Milvus 的额外运维复杂性买单? 当你运营的规模已经让单个快速引擎力不从心时——数亿到数十亿向量,此时 Milvus 的分布式模式和效率优势才真正发挥作用,其多组件架构为你提供了实实在在的扩展空间。在此规模之下,Qdrant 的单镜像简洁性通常能以远少于运维达到相同的效果。
Aquila 是 私密、自托管 AI 搜索 的独立指南——掌控你自己的搜索,而非租赁。查看完整领域,请参见最佳自托管向量数据库;比较两个领先的中型引擎,请参阅Qdrant vs Weaviate;或阅读什么是向量数据库以了解相关概念。掌控你自己的搜索。