為什么向量數據庫不使用 SQL 查詢? 原創
多年來,我們一直通過 SELECT–FROM–WHERE 這種格式與數據庫進行交流,從簡單的報表生成到復雜的財務分析,再到用戶行為的查詢,SQL 已經成為我們與數據庫溝通的默認語言。有趣的是,即使是那些最初聲稱要顛覆 SQL 的 NoSQL 數據庫,最終也紛紛引入了對 SQL 的支持。
但是,僅僅因為 SQL 支持一直如此,就意味著它永遠正確嗎?
據 Gartner 的預測,到了2026年,大多數企業將會優先考慮使用自然語言作為數據庫查詢的接口,SQL 將從一個必備技能轉變為一個可選技能。
隨著大模型和向量數據庫的快速發展,我們需要重新考慮:SQL 是否仍然是進行數據庫查詢的最佳方式?
下文我們詳細剖析之。
1、自然語言交互,數據庫查詢的另一種解法
設想這樣一個場景,你不再需要編寫繁瑣的 SQL 查詢語句,只需簡單地說:“找出最近購買習慣和我相似的用戶最偏愛的商品?!?/p>
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?? 作者:玄姐
