在剛剛OOW19會上的《python and mysql 8.0 document store》topic中,終于看到了MySQL即將在8.0.18中支持hash join,自從被Oracle收購后,又一特性被引入到MySQL中,有了Hash Join,SQL的性能將得到顯著的提升,同學們期盼已久,迫不及待的等待測驗,BTW:Oracle資料庫在1996年7.3版本中就已經推出了hash join功能,
Topic中給出了MySQL Hash Join的特性介紹:
1、對于大資料量的表關聯,HJ速度將明顯比NL快很多
2、在記憶體中處理
3、必要情況下,會使用磁盤空間
4、用于內連接,可擴展到外連接、半連接和反連接
5、替換查詢計劃中的Block Nested Loop
6、可以通過HINT強制SQL走HJ或者NL
MySQL是一個輕量級的資料庫,使用起來非常簡單,深受開發者喜愛,之所以一直不支持hash join,想必應該是背后的邏輯和資料支撐需要較高開發和維護成本,hash join演算法其實并不復雜,但是要想hash join運行好,類似Oracle CBO一整套的東西是必不可少的,而CBO又依賴于統計資訊,隨之而來的就是Oracle中常見的謂詞越界、資料分布不均、系結變數窺探等等問題需要解決,
我們從后面看到,MySQL 8.0.18還支持EXPLAIN ANALYZE,也是基于CBO的一些新功能
使用它可以估算成本、查看實際執行的統計資料,包括第一條記錄的回傳時間,全部記錄回傳時間,回傳記錄的數量以及回圈數量,EXPLAIN還將可以使用新的輸出格式,樹狀輸出,
隨著企業資料量的增長,不再是幾年前幾十M大小隨便跑的資料庫了,期待MySQL在更多的場景都能發揮作用,
出處:墨天輪(https://www.modb.pro/db/6589,復制到網頁中打開 )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/304038.html
標籤:區塊鏈
