完整题目
什么是向量数据库?它和 MySQL 这类传统数据库有什么本质区别,为什么能在海量向量里快速找到最相似的几条?
本文目录
答案要点
- 向量数据库存的是 embedding(把文本、图片等编码成的一串数字),核心操作是"找最相似的 Top-K",而不是精确匹配
- 传统数据库回答"等于/大于"这类精确问题,向量数据库回答"和它最像的是哪几条"这类语义问题
- 逐条暴力比对是 O(N),千万级向量下每次查询都算不动,所以要用 ANN(近似最近邻)
- ANN 的思路是提前建好索引,查询时只看一小部分"候选区域",用少量精度换几个数量级的速度
- 常见索引:HNSW(分层图)、IVF(先聚类再查桶)、PQ(压缩向量省内存)
核心概念
向量数据库是一类专门存储高维向量、并按"相似度"进行检索的数据库:文本、图片先经过 embedding 模型编码成几百到几千维的向量,语义越接近的内容,向量在空间中的距离越近;查询时输入一个查询向量,数据库返回距离最近的 Top-K 条记录。这正是 RAG(检索增强生成)里"根据问题找相关文档"这一步的基础设施。
和传统数据库的对比
| 维度 | 传统数据库(MySQL) | 向量数据库(Milvus/Faiss 等) |
|---|---|---|
| 存什么 |