Milvus、Qdrant、Chroma:向量数据库选型的工程决策

发布时间:2026/7/4 3:41:54

Milvus、Qdrant、Chroma:向量数据库选型的工程决策 选向量数据库之前先理解它底层怎么检索的。HNSW 不是图索引三个字就能概括的——它是怎么建图的、怎么搜的、为什么内存占用是原始向量的 2-3 倍这些决定了你在生产环境会不会 OOM。阅读提示适合谁看已经用过向量检索RAG、语义搜索、想从会用进阶到理解底层的工程师看完能做什么理解三种 ANN 算法的检索步骤、知道内存和精度的 trade-off 从哪来、选型时能说清为什么选这个不适合谁还没用过向量检索的读者先给结论**HNSW 是用内存换精度**——跳表 图搜索精度最高但内存占用是原始向量的 2-3 倍100 万 768 维向量需要约 7.5GB**IVF 是用精度换速度**——K-Means 聚类 倒排索引先粗后精两阶段检索速度快但精度取决于 nprobe 参数**PQ 是用精度换内存**——向量压缩 32 倍100 万 768 维向量只占 0.3GB但精度损失 10-20%选对 Embedding 模型比选对向量数据库重要 6 倍——这是经验判断在我们项目里约 30% 的检索准确率差异来自 Embedding5% 来自数据库选择01 为什么精确搜索在高维空间不可行向量检索的本质是在 N 维空间里找离查询点最近的 K 个点K-Nearest Neighbors, KNN。精确搜索暴力扫描的计算量 O(N × D)其中 N 是向量数量D 是维度。100 万条 768 维向量每次查询要算 7.68 亿次距离。在现代 GPU 上约 50msCPU 上约 500ms——对在线服务来说太慢了。维度灾难高维空间中所有点之间的距离趋于相等。768 维空间里最近邻和最远邻的距离比值可能只有 1.2 倍——这意味着精确最近邻本身就没有太大意义近似最近邻ANN的精度损失可以忽略。ANN 算法的核心思想不扫描所有向量只扫描可能近的那部分。HNSW、IVF、PQ 是三种不同的怎么判断哪些可能近的策略。02 HNSW多层图搜索——为什么精度最高、内存最大图 1三种 ANN 算法原理对比HNSWHierarchical Navigable Small World的灵感来自跳表Skip List。索引构建过程插入第一个向量作为第 0 层的唯一节点插入第二个向量时用指数分布随机决定它出现在哪些层层数越高概率越小对于每一层找到新节点的 M 个最近邻建立双向边重复直到所有向量插入完毕关键参数 M每个节点在每一层最多有 M 个邻居。M16 意味着每个节点有 16 条边。M 越大图越密集精度越高但内存越大。检索过程以查询向量 q 为例从最顶层最稀疏的层的入口节点开始在当前层做贪心搜索从入口节点出发每次移动到离 q 最近的邻居直到找不到更近的把当前层的最近节点作为下一层的入口重复直到到达第 0 层最密集的层在第 0 层做 beam search宽度为 ef收集 ef 个最近邻从 ef 个候选中返回 Top-K为什么内存占用是原始向量的 2-3 倍原始向量N × D × 4 bytesFP32图结构N × M × 2 × 4 bytes每个节点 M 条边每条边存邻居 ID 距离M16 时图结构约占原始向量的 16×2×4 / (768×4) ≈ 42%加上多层结构的额外开销总计约 2-3 倍为什么 HNSW 精度最高多层结构让搜索从粗到细底层的 beam searchef 个候选保证了局部最优。recall10 通常 95%。为什么 HNSW 内存最大每个向量要存一份原始向量用于计算距离 一份图结构邻居列表。没有压缩没有聚类全部原样存。03 IVFK-Means 聚类 倒排索引——为什么速度最快IVFInverted File Index的核心思想是先聚类再在聚类内搜索——“先粗后精”。索引构建过程用 K-Means 对所有向量做聚类得到 nlist 个聚类中心比如 nlist1024把每个向量分配到最近的聚类中心为每个聚类中心建一个倒排列表存储属于该聚类的所有向量 ID检索过程计算查询向量 q 与所有 nlist 个聚类中心的距离选择最近的 nprobe 个聚类中心比如 nprobe8只在这 nprobe 个聚类的倒排列表内做精确搜索返回 Top-Knlist 的影响nlist 越大聚类越细每个聚类内的向量越少检索越快但 nlist 太大聚类中心之间的距离计算成为瓶颈推荐值nlist sqrt(N)比如 100 万向量用 nlist1000nprobe 的影响nprobe 越大搜索范围越广精度越高但速度越慢nprobenlist 时退化为暴力搜索nprobe 从 16 调到 64精度只提升 3%但延迟增加 4 倍——这是 IVF 的核心 trade-off为什么 IVF 速度最快只需要计算 nprobe 个聚类中心的距离 在 nprobe 个聚类内搜索计算量远小于全量扫描。为什么 IVF 精度中等如果查询向量落在两个聚类的边界上只搜 nprobe 个聚类可能漏掉真正的最近邻。recall10 通常 85-95%。04 PQ向量压缩——为什么内存最小PQProduct Quantization的核心思想是把高维向量切分成若干子空间每个子空间用聚类中心编码。索引构建过程把 768 维向量切成 m 个子空间比如 m96每个子空间 8 维对每个子空间独立做 K-Means 聚类比如 256 个聚类中心每个子空间的原始向量用最近的聚类中心 ID1 个字节替代原始 768 维 × 4 bytes 3072 bytes → 压缩为 96 × 1 byte 96 bytes32 倍压缩检索过程把查询向量也切成 m 个子空间预计算查询向量每个子空间与 256 个聚类中心的距离距离表对每个数据库向量用距离表查 m 个子空间的距离求和得到总距离返回 Top-K为什么 PQ 内存最小每个向量只存 96 字节压缩后100 万向量只占 96MB。加上距离表等开销总计约 0.3GB。为什么 PQ 精度最低压缩是有损的——96 个字节能表达的信息量远小于 3072 个字节。recall10 通常 80-90%。IVF PQ 组合先用 IVF 聚类缩小搜索范围再用 PQ 压缩存储。1000 万向量只占约 3GB 内存但精度损失 10-20%。05 三个数据库的架构本质差异维度ChromaQdrantMilvus存储引擎SQLite嵌入式自研RustWAL Segment自研Go/C存算分离索引实现HNSWlibC 库自研 HNSWRust多种HNSW/IVF/DiskANN数据模型Collection → EmbeddingCollection → Segment → Vector PayloadCollection → Partition → Segment写入路径同步写 SQLite HNSWlibWAL → 内存 → Segment 合并WAL → Data Node → MinIO → Index Node一致性强一致单机最终一致Segment 合并可配置Strong/Bounded/Session内存管理全量加载mmap 可选全量/懒加载/DiskANN06 最小实验100 万向量的实际表现测试条件单机 32G 内存100 万条 768 维向量FP32HNSW 索引Python SDK。指标ChromaQdrantMilvus索引构建时间2 小时20 分钟15 分钟内存占用8GB7GB7.5GB检索延迟 (P50)8ms3ms3ms检索延迟 (P99)25ms8ms7msrecall1096%97%97%以上数据是经验估算不同硬件和配置下差异会很大。07 选型决策路径图 2向量数据库选型决策图简单决策规则原型验证、10 万以下、无运维→ Chroma中小规模生产、10 万-1000 万、有基础运维→ Qdrant大规模生产、1000 万、有专业运维→ Milvus已有 PG/Redis/ES 集群→ 先试向量扩展08 边界什么时候不需要向量数据库BM25 够用的场景精确关键词匹配订单号、产品名称BM25 比向量检索更快更准。数据量极小 1000 条暴力搜索就够了不需要索引。对延迟极致敏感 1ms向量数据库的检索延迟通常 2-20ms可能需要预计算方案。09 给读者一个能用来做决策的结论决策帮助如果你刚接触向量检索先用 Chroma 跑通 demo不要一开始就上 Milvus如果你准备上生产优先考虑 Qdrant 或 pgvector如果你数据量超过 1000 万Milvus 是最成熟的选择如果你只能先做一步先选对 Embedding 模型——比选对数据库重要 6 倍学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻