Milvus 深潜教程 · 起点

把 Milvus 当成一个流式分布式数据库来学

基于 Milvus 2.6.x(截至 2026-06)· 阅读时间约 4–6 小时(深潜版,可分次)· 示例代码用于说明概念,未在本机运行(已逐处标注)。这份教程不重复向量检索基础,专攻“Milvus 之所以是 Milvus”。

▸适合谁 / 不适合谁

适合谁

同时满足这三条,收益最大:

前置能力

  • 用任意一门语言写过后端服务,看到“索引”“分片”“副本”不需要查词——不要求精通分布式。
  • 已经知道向量检索是什么:embedding、ANN(近似最近邻)、召回率与延迟的取舍。缺这块先读隔壁 vector-database 教程 再回来。
  • 见过至少一个带消息队列或对象存储的系统(Kafka / RocketMQ、S3 / MinIO 任一即可),知道它们各自解决什么问题。

不适合谁

下面三种情况,别从这里开始:

  • 还不清楚 embedding / 向量相似度是什么 → 先读 vector-database 教程,那里有基础。
  • 只想 5 分钟存几条向量跑个 demo → 直接看 Milvus Lite 快速开始,这份深潜对你是浪费。
  • 正在为“要不要上向量库”做决策、数据量不到百万级 → 先跳到 第 05 章的选型辨析,结论往往是 pgvector 或 Chroma 就够了。

▸读完之后你能做到什么

这份教程给你的、文档给不了的那一句:

这份教程的 USP

你能向面试官或团队讲清楚:为什么 Milvus 把一次 insert 拆成「先写日志 → 再固化 segment → 再异步建索引」三段,以及这套流式架构如何同时决定了它的一致性语义、扩展边界、和适用场景——这是只读 API 文档学不到的整体观。

具体地,读完你能(每条都可验证,不是“理解 X”):

  • 凭记忆画出 Milvus 的 4 层架构,并说出每个组件的单一职责。
  • 给定数据规模 / 召回 / 延迟 / 内存约束,选出索引类型,并区分建索引旋钮(nlist、M)和查询旋钮(nprobe、ef)。
  • 说清 4 个一致性级别各自的机制,并为一个 RAG 场景选对级别、讲出代价。
  • 区分 partition 与 shard、growing 与 sealed segment,并说明各自影响什么。
  • 判断一个具体场景该用 Milvus,还是 pgvector / Qdrant / Chroma,并给出依据。

一句话本质

Milvus 不是“带服务器的 FAISS”。它是一个存储计算分离的流式分布式数据库:写入先落预写日志(WAL),日志才是事实源;数据被固化成不可变的 segment,而 segment 是存储、索引、查询、负载均衡的统一调度单元;向量检索只是它最上层的一个算子。

▸现状速览(截至 2026-06)

什么稳定 · 什么在变 · 什么已被取代

稳定:核心数据模型与索引 API 自 2.4(2024-03)起稳定;MilvusClient 统一 SDK、HNSW / IVF / DiskANN、稀疏向量与多向量混合检索都已成熟。

在快速变化:2.6(2025-08)做了两处架构级改动——自研 Woodpecker WAL 替掉外部 Pulsar / Kafka、多个 coordinator 合并为单个 MixCoord 并新增 streaming node;全文检索(BM25)/ 稀疏向量在 2.5–2.6 成熟;Storage V2、RaBitQ 1-bit 量化、INT8 向量是 2.6 的新面孔。

已被取代(别学旧的):旧的多协调器部署、对 Pulsar / Kafka 的硬依赖、ORM 风格 Collection() SDK 都已让位;3.0(2026-05 beta)正把 Milvus 推向“Vector Lake”多模态数据湖,尚未 GA。本教程统一用新写法,并在涉及处标注。

先读这条 · 流畅感是陷阱

这份教程会反复让你产生“懂了”的错觉。这三种感觉尤其要警惕:

「我读得很顺」——顺往往只说明文字写得顺,不代表结构进了脑子。

「我做题很快」——快常常是在套刚看过的例子,换个数据规模或一致性要求就卡住。

「我没卡壳」——没卡壳,往往是还没真正碰到难点(比如“为什么默认是 Bounded 而不是 Strong”)。

对策:每章末的 self-check 和第 05 章的辨析题,合上教程再作答。

▸概念地图

整份教程挂在这一张图上。后面每出现一个新名词,先回来这里找它的位置。

逻辑层 物理层 索引层 系统架构 Collection · 集合 Schema · Partition · Entity(主键 PK) Segment · 统一调度单元 growing → sealed → indexed,不可变 Index · 索引(每段各一份) HNSW · IVF · DiskANN · CAGRA · Sparse 系统架构 · 4 层 Proxy · MixCoord · Worker Node Storage:etcd + WAL + 对象存储 切分为 每段各自建 运行在 写入 → WAL Woodpecker · 事实源 固化为段
图 0.1Milvus 的五个核心抽象,自上而下从你写的逻辑模型落到系统架构。注意:写入不直接改某个索引,而是先落到 WAL(事实源)、再固化成不可变的 segment——这条竖线就是读懂 Milvus 的主线,其余细节都挂在它上面。

▸学习路径建议

按目的挑一条,不必从头读到尾:

▸章节目录

  • 01 · 核心概念——Milvus 的词汇表:Collection / Schema / 向量字段 / Entity / Partition vs Shard / Segment 生命周期 / Flush,以及索引与一致性名词。
  • 02 · 架构:流式分布式——存储计算分离、日志即事实源、4 层组件职责、写入路径、segment 生命周期与 compaction。整套流式架构观在这一章成形。
  • 03 · 索引内核——HNSW / IVF / DiskANN / GPU CAGRA / 稀疏索引的机制、量化(SQ/PQ/RaBitQ)、召回-延迟-内存三角,及“建索引旋钮 vs 查询旋钮”。
  • 04 · 检索与一致性——一次 search 如何执行(growing + sealed 并行检索 → reduce、过滤与分区裁剪),4 个一致性级别的机制(TSO / guarantee timestamp)。
  • 05 · 自测与辨析——三层梯度题库 + 跨章选型辨析 + 一个“合上教程手画架构图”的练习。

▸学完之后往哪走

  • RAG 系统集成——把 Milvus 接进检索增强生成链路:在你的 schema 上加“分块、嵌入、混合检索、rerank”一整套。见 rag 教程。
  • 生产部署与调优——Distributed 模式的资源规划、segment / compaction 调参、监控指标:在 schema 上加“运维视角”。
  • 多向量与混合检索——dense + sparse 双路召回与加权 rerank:加“一次查询多种相似度”的能力。
  • Milvus 3.0 / Vector Lake——外部表、快照、UDF、Ray/Daft 分布式执行:加“向量库 → 数据湖”的演进方向。