向量数据库和普通数据库有什么区别- [intro-vector-database-basics]

article
2026年7月21日1 min read168 words

Updated 2026年7月21日

向量数据库和普通数据库有什么区别?

从精确匹配到相似检索,一文看懂 ANN 为什么快

原题:什么是向量数据库?它和 MySQL 这类传统数据库有什么本质区别,为什么能在海量向量里快速找到最相似的几条?

向量检索

30 秒回答

  1. 向量数据库存的是 embedding(把文本、图片等编码成的一串数字),核心操作是"找最相似的 Top-K",而不是精确匹配
  2. 传统数据库回答"等于/大于"这类精确问题,向量数据库回答"和它最像的是哪几条"这类语义问题
  3. 逐条暴力比对是 O(N),千万级向量下每次查询都算不动,所以要用 ANN(近似最近邻)
  4. ANN 的思路是提前建好索引,查询时只看一小部分"候选区域",用少量精度换几个数量级的速度

回答与解析

答案要点

  • 向量数据库存的是 embedding(把文本、图片等编码成的一串数字),核心操作是"找最相似的 Top-K",而不是精确匹配

  • 传统数据库回答"等于/大于"这类精确问题,向量数据库回答"和它最像的是哪几条"这类语义问题

  • 逐条暴力比对是 O(N),千万级向量下每次查询都算不动,所以要用 ANN(近似最近邻)

  • ANN 的思路是提前建好索引,查询时只看一小部分"候选区域",用少量精度换几个数量级的速度

  • 常见索引:HNSW(分层图)、IVF(先聚类再查桶)、PQ(压缩向量省内存)

核心概念

向量数据库是一类专门存储高维向量、并按"相似度"进行检索的数据库:文本、图片先经过 embedding 模型编码成几百到几千维的向量,语义越接近的内容,向量在空间中的距离越近;查询时输入一个查询向量,数据库返回距离最近的 Top-K 条记录。这正是 RAG(检索增强生成)里"根据问题找相关文档"这一步的基础设施。

和传统数据库的对比

维度 传统数据库(MySQL) 向量数据库(Milvus/Faiss 等)
存什么 结构化行数据 高维向量 + 元数据
怎么查 精确条件(WHERE) 相似度 Top-K(近邻搜索)
结果 完全匹配的集合 按距离排序的"最像的几条"
典型索引 B+ 树 HNSW / IVF / PQ

ANN 为什么快

  1. 暴力检索要把查询向量和库里每一条都算一次距离,N 条就是 N 次计算,规模一大就扛不住

  2. ANN 提前建索引:比如 HNSW 把向量组织成多层"高速公路网",查询时从高层粗定位、逐层往下细找,只访问极少数节点

  3. 代价是"近似":可能漏掉个别真正的最近邻,用召回率(找回来多少真答案)衡量;实践中 95%+ 的召回换来毫秒级响应,非常划算

入门之后,可以往 HNSW/IVF 的原理细节、召回率与延迟的权衡、混合检索方向深入。

口语版讲法(约2分钟)

  • 本质是语义搜索,不是精确匹配
  • 传统数据库 vs 向量数据库:存什么、查什么
  • ANN 索引如何提速,代价是近似
  • 业务场景:客服知识库,混合检索更稳

这道题其实在问,当数据变成高维向量以后,怎么在海量数据里快速找到最相似的几条。核心区别是,传统数据库解决精确匹配问题,比如查订单号等于多少、价格大于多少,返回的是精确集合;而向量数据库解决的是语义相似问题,比如找一段和用户问题最相关的文档片段,返回的是按距离排序的TOP-K。

你可以这么理解,MySQL 存的是结构化行数据,查询走 B+ 树索引,结果要求完全匹配;向量数据库存的是 Embedding,也就是文本、图片经过模型编码成的一串浮点数,查询时算向量距离,语义越接近距离越近。

那为什么向量数据库能在千万级数据里快速找到最相似的?如果暴力比对,每条都要算距离,复杂度 O(N),根本扛不住。所以实际用的是 ANN,也就是近似最近邻。它的思路是提前建索引,查询时只扫描一小部分候选区域,用少量精度换几个数量级的速度。常见的索引有 HNSW,把向量组织成分层图,从高层粗定位再往下细找;还有 IVF,先聚类再查最近的桶。代价就是近似,可能漏掉个别的真正最近邻,但实践中召回率做到95%以上,延迟能压到毫秒级,非常划算。

举个业务场景,比如客服知识库,用户问“退款流程是什么”,传统关键词检索可能因为措辞不同而漏掉,向量检索能匹配语义相近的文档。但这里有个坑:如果只靠向量,遇到订单号、政策编号这种精确信息就容易翻车。所以真正落地我不会只用向量检索,而是做 Hybrid Search,把向量和关键词结合起来,再配合 Rerank,这样精确匹配和语义匹配都能覆盖。

不过要注意,ANN 索引在数据频繁更新时表现会变差,因为图结构或聚类中心需要重建。我会特别关注写入延迟和索引重建策略,如果业务对实时性要求高,可能得用 delta 加 base 双索引的方案,查询时合并结果,这样新增数据能准实时生效,同时保证检索质量。

所以我的看法是,向量数据库不是要替代传统数据库,而是解决语义搜索这个特定问题。选型时得看场景:事实问答、精确匹配多的,传统数据库加全文搜索可能更稳;语义理解、开放域检索多的,向量数据库才有价值。

关键一句:ANN 索引在数据频繁更新时检索质量会下降,需要增量索引策略

面试官还可能这样问

  1. 问法 1 · 概念辨析MySQL 也能存一列数字数组,为什么不直接在 MySQL 里算相似度,非要引入一个向量数据库?两者的本质分工差在哪?
  2. 问法 2 · 场景切入假设要给公司十万篇文档做语义搜索,用户输入一句话就能找到意思最接近的文档,你会怎么存、怎么查?暴力逐条比对行不行?