
为什么向量数据库不使用 SQL 查询? 原创
多年来,我们一直通过 SELECT–FROM–WHERE 这种格式与数据库进行交流,从简单的报表生成到复杂的财务分析,再到用户行为的查询,SQL 已经成为我们与数据库沟通的默认语言。有趣的是,即使是那些最初声称要颠覆 SQL 的 NoSQL 数据库,最终也纷纷引入了对 SQL 的支持。
但是,仅仅因为 SQL 支持一直如此,就意味着它永远正确吗?
据 Gartner 的预测,到了2026年,大多数企业将会优先考虑使用自然语言作为数据库查询的接口,SQL 将从一个必备技能转变为一个可选技能。
随着大模型和向量数据库的快速发展,我们需要重新考虑:SQL 是否仍然是进行数据库查询的最佳方式?
下文我们详细剖析之。
1、自然语言交互,数据库查询的另一种解法
设想这样一个场景,你不再需要编写繁琐的 SQL 查询语句,只需简单地说:“找出最近购买习惯和我相似的用户最偏爱的商品。”
AI 应用理解了你的请求后,会迅速做出决策:
- 是应该查询结构化数据表吗?
- 还是需要执行一次向量相似度搜索?
- 是否需要调用外部服务来补充数据?
一旦这些决策完成,数据库将自动处理所有执行细节,并返回你所期望的结果。
这种操作方式为用户带来的主要好处包括:
- 无语法障碍,我们无需记忆字段名称,不必担心括号匹配问题,表达需求变得更加自然。
- 对非结构化数据的查询更加友好,无论是图像、音频还是文本,都可以作为查询的对象。
- 该系统的用户群体将更加广泛:不仅是工程师可以使用,运营人员、产品经理甚至市场部门的同事都能够与数据进行互动。
2、自然语言交互背后是 AI 智能体调度
要实现自然语言交互,行业里普遍采用的是一种组合方法,包括:自然语言解析 + 向量检索 + AI 智能体调度。
在这一过程中,AI 智能体调度扮演着至关重要的角色,它主要负责以下四个核心功能:
- 解析意图:确定用户想要查询的字段、数据库以及索引。
- 选择策略:决定是进行结构化数据的过滤,还是执行向量检索,或者是两者的结合。
- 调用能力:直接执行 API、触发S DK,甚至跨服务进行联合操作。
- 结果包装:不是简单地返回一堆杂乱无章的 JSON 数据,而是提供用户能够立即理解的结果。
举个例子,在向量数据库 Milvus 中,只需一行代码就能完成一次复杂的相似度检索:
results = collection.search(query_vector, top_k=10, filter="is_active == true")
这种“API 优先”的方法,非常适合大模型的 Function Calling 和 MCP 能力,它使得执行速度更快,出错几率更低,同时也更容易实现标准化和集成。
3、为什么 SQL 不适合做向量检索?
普遍认为,非结构化数据占全球数据总量的80%,而向量数据库与传统的关系型数据库相比,更自然地支持自然语言查询,也更适合与大模型配合使用。
当然,为了弥补传统关系型数据库在查询非结构化数据方面的不足,许多这类数据库引入了“类似 SQL 的向量检索”功能。比如:PostgreSQL 结合 PGVector 提供了<->运算符,使得下面的查询语句看起来相当“先进”:
SELECT *
FROM items
ORDER BY embedding <-> query_vector
LIMIT 10;
但这种表面的“兼容性”实际上带来了新的问题:这类 SQL 并非标准化,导致开发者需要付出更高的学习成本。此外,在关系型数据库中存储向量数据还存在严重的性能问题:
- 执行路径复杂:传统数据库会强制执行解析器、优化器、事务等复杂的逻辑路径,这导致消耗了大量额外的资源。
- I/O压力大:向量数据以 BLOB 形式存储,每次检索都需要解码;在图索引场景中,还可能频繁地访问磁盘,极大地消耗性能。
我们进行过一项测试,在相同的检索条件下,Milvus 的查询延迟仅为 pgvector 的40%,吞吐量却提升了4.5倍。换句话说,传统关系型数据库添加向量检索功能,实际上反而增加了系统的复杂性。
总的来说,关系型数据库和向量数据库在设计哲学、数据结构和查询逻辑上有着根本的不同:
4、总结
总之,AI 大模型新时代,向量数据库具有四大优势:
- 兼容多种数据模型: 现实世界中的数据远比表格形式复杂得多。向量数据库能够灵活地支持嵌套文档、时间序列向量,以及如 ColBERT、CoLPAL 等多向量结构,以适应不同模型生成的丰富语义表示。
- 为 AI 智能体设计的友好 API: 大模型更倾向于调用函数而非编写 SQL。向量数据库采用以 Python 为主的 API 设计,原生支持函数调用,只需一行代码即可完成嵌入检索、过滤、重排序和语义高亮,显著降低了开发和运维成本。
- 深度语义理解: 向量数据库不仅仅是执行命令,它还能理解查询意图。与 AI 智能体协作,它可以超越“字面匹配”的限制,实现语义层面的智能检索,使未来的数据库不仅要“知道如何查询”,更要“理解你真正想要查询的内容”。
- 极致优化召回率: 通过结构化过滤、混合检索、重排序(Rerank)等技术,向量数据库可以不断优化搜索结果的相关性,找回更多真正有价值的内容,实现性能与召回率的平衡。
向量数据库的目的并非取代关系型数据库,更多情况下,它是一种专为 AI 场景设计的新型基础设施,能够更好地响应自然语言查询,也能检索语义信息。最终,让数据库从僵硬的执行者转变为真正理解上下文、主动辅助决策的数据智能体。
本文转载自玄姐聊AGI 作者:玄姐
