向量数据库VS传统关系型数据库

张开发
2026/5/18 6:08:00 15 分钟阅读
向量数据库VS传统关系型数据库
最近热门的RAG、大模型、AI 应用等都能与向量数据库能扯上关系。下面我们来讲讲向量数据库与传统关系型数据库有什么区别以及应该如何使用1. 存储的内容不同传统关系型数据库如 MySQL存的是结构化数据。比如用户表id、名字、年龄、注册时间。每一行都是固定的列规规矩矩清清楚楚。向量数据库存的是一堆小数也就是“向量”。比如[0.23, -0.56, 0.78, …, 0.11]一长串可能有几百上千个数字。 这串数字是由 AI 模型比如 BERT、ResNet从一段文字、一张图片甚至一段音频里“提炼”出来的语义指纹。你可以这样理解MySQL 存的是“事实卡片”向量数据库存的是“气味标签”。2. 查询方式完全不同用MySQL是使用 SQL 进行精确或模式匹配查询。你写的是SELECT*FROMusersWHEREname张三ANDage18结果要么有要么没有。非常确定。用向量数据库你输入一个向量它给你返回最相似的 Top K 个结果。 相似度用距离度量余弦相似度、欧氏距离、内积等计算。比如你拿一张猫的图片它找出图库里最像猫的那几张。不会有“完全正确”的答案只有“越来越像”的排序。3. 索引和搜索的底层逻辑不一样MySQL 用B-Tree索引。对一维数据数字、字符串非常快比如、、BETWEEN。但一旦数据变成几百维的向量B-Tree 就彻底废了——这是经典的“维度灾难”。向量数据库用近似最近邻ANN索引比如 HNSW、IVF、PQ。这些算法不追求 100% 精确而是在速度和精度之间做平衡。 换句话说牺牲一点点准确率换来百倍甚至千倍的查询速度。比如我们在淘宝“找相似”商品几秒就出来结果背后就是这类算法在起作用4. 各自擅长什么场景场景传统数据库MySQL向量数据库查某个用户的订单适合不合适找出所有 20–30 岁的用户标准 SQL没必要上传一张图片在图库里面找相似的无法做到除非人工标签核心能力问AI“有哪些讲‘勇气’的电影台词”语义搜索只能靠关键词“勇气”匹配漏掉“无畏”“坚韧”能理解语义相近的词风控中发现类似欺诈模式依赖预定义规则基于向量相似度发现新模式也就是说如果你要精确查→ MySQL而如果你要语义/相似/模糊找→ 向量数据库总结这两者并不是替代关系而是搭档。在实际项目里尤其是现在很火的RAG检索增强生成系统中两者经常一起用向量数据库负责把用户的问题转成向量快速找出语义相关的文档片段。MySQL 或 PostgreSQL负责存储文档的元数据作者、发布时间、权限、阅读量然后在向量检索结果上做过滤比如“只返回 2024 年之后的文档”。很多向量数据库比如 Milvus、Qdrant现在也支持标量过滤也就是在相似搜索的同时加上where author张三这种条件。但底层核心依然是向量索引。如果你接下来要做一个推荐系统、以图搜图、智能问答、RAG 应用那么向量数据库基本是绕不开的但这不意味着你要抛弃传统关系型数据库。它们更像是MySQL负责“记帐” 向量数据库负责“找感觉”完全可以各司其职配合使用

更多文章