當機器學習踏入資料庫核心領域
2018 年年底,MIT 與 Google 合作撰寫新型機器學習型資料庫的研究結果,提出資料庫 “Optimizers” 及 “Cost models” 演算最佳化的「學習型程式組件」建模。
與 RDBMS
、NoSQL
至 NewSQL
不一樣的是,過去這類研究多基於「特定領域」提供 “特有解法”,所以難以一體適用。使得很多中大型企業要針對不同的場景使用不同的資料庫體系。而「學習型程式組件」可以依據 “資料” 的特性,選出 (學習) 較適的處理結構。
例如,論文指出,當資料是近乎連續的整數時,常見資料庫的 B+ Tree 結構對此執行 Range Scan 的意義不大,反而直接用 Array 處理最佳。實測時,資料量 1 億的數據,在 Array 的 O (1) 下約 300 ms 可完成,但在 PostgreSQL 9.6 需要 150 秒,效能差距是 500 倍。
當然,因為是基於「機器學習」,所以硬體也不單是 CPU,而是需要 TPUs / GPUs 才能達到預期效果。
想要依據機器學習來針對資料庫某些領域的突破,讓我想起 2017 年 6 月 AWS 也有專文撰寫一篇資料庫參數效能自動最佳化的文章。之前把心得整理在 AI 浪潮下,資料庫管理師也即將失業?。