在現代關係數據庫中,基數估計(CE)起着至關重要的作用。簡單來說,基數估計就是預測數據庫查詢將返回多少中間結果。這一預測對查詢優化器的執行計劃選擇影響巨大,比如決定連接順序、是否使用索引以及最佳連接方法的選擇。如果基數估計不準確,執行計劃可能會大打折扣,導致查詢速度極慢,嚴重影響數據庫的整體性能。
然而,現有的基數估計方法存在諸多限制。傳統的 CE 技術依賴一些簡化的假設,往往精準預測複雜查詢的基數,尤其是涉及多個表和條件的情況。雖然學習型 CE 模型能提供更好的準確性,但它們的應用卻受到訓練時間長、需要大數據集以及缺乏系統性基準評估的限制。
爲了填這一空白,Google 的研究團隊推出了 CardBench,一個全新的基準測試框架。CardBench 包含超過20個真實世界的數據庫和數千個查詢,遠超以往的基準。這使得研究人員能夠在各種條件下系統地評估和比較不同的學習型 CE 模型。該基準支持三種主要設置:基於實例的模型、零樣本模型和微調模型,適用於不同的訓練需求。
CardBench 的設計還包括一系列工具,可以計算必要的數據統計,生成真實的 SQL 查詢,並創建用於訓練 CE 模型的帶註釋查詢圖。
該基準測試提供兩組訓練數據:一組用於具有多個篩選條件謂詞的單個表查詢,另一組用於涉及兩個表的二進制聯接查詢。該基準測試包括9125個單表查詢和8454個二進制連接查詢,適用於其中一個較小的數據集,從而確保爲模型評估提供強大且具有挑戰性的環境。源自 Google BigQuery 的訓練數據標籤需要7個 CPU 年的查詢執行時間,這凸顯了創建此基準測試的重大計算投資。通過提供這些數據集和工具,CardBench 降低了對開發和測試新 CE 模型的研究人員的門檻。
在使用 CardBench 進行的性能評估中,微調模型的表現尤爲突出。雖然零樣本模型在應用於看不見的數據集時難以提高準確性,尤其是在涉及聯接的複雜查詢中,但微調模型可以達到與基於實例的方法相當的準確性,而訓練數據要少得多。例如,微調的圖形神經網絡 (GNN) 模型在二進制連接查詢中實現了1.32的中位 q 誤差和第95個百分位的 q 誤差120,明顯優於零樣本模型。結果表明,即使有500個查詢,微調預訓練模型也可以顯著提高其性能。這使得它們適用於訓練數據可能受限的實際應用。
CardBench 的推出爲學習型基數估計領域帶來了新的希望,使研究人員能夠更有效地評估和改進模型,從而推動這一重要領域的進一步發展。
論文入口:https://arxiv.org/abs/2408.16170
劃重點:
- 📊 CardBench 是一個新的基準測試框架,包含20個真實數據庫和數千個查詢,支持對學習型基數估計模型的系統評估。
- 🛠️ 該基準提供了計算數據統計、生成 SQL 查詢和創建查詢圖的工具,降低了研究人員的開發門檻。
- 🚀 微調模型在性能評估中表現突出,能夠在少量訓練數據下達到與傳統模型相似的準確性,展現出實際應用的潛力。