溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

發(fā)布時間:2022-01-05 17:11:38 來源:億速云 閱讀:307 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別”這篇文章吧。

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MySQL 8 最終是要大面積替換MYSQL5.7 , 之前的文字可能給人感覺MYSQL 8 還不如 MYSQL 5.7 ,實際上不然,任何東西新的一定有問題,解決解決就好了,在復雜查詢這塊 MYSQL 5.7 的確是和MYSQL 8 已經(jīng)有了分別,對于開發(fā)人員撰寫SQL 有什么幫助我們可以看看下面的一些例子。

下面是MYSQL 8 和 MYSQL 5.7 在一個稍微復雜查詢的執(zhí)行計劃

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

對比上面的圖,一樣的語句,一樣的數(shù)據(jù)庫,一樣的表,一樣的數(shù)據(jù)行數(shù)和內容,mysql 8 由于各種優(yōu)化,去掉了 using firesort,并且由于這一項,節(jié)省了近 20秒

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

下面還有相關的例子,還是出了MYSQL 版本不一致,包括硬件其他的都一樣的情況下,mysql 8 比 mysql 5.7 要快 4倍 34秒與128秒的區(qū)別,不同的還是那個 filesort

mysql 8.018

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

mysql 5.7.23

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

通過這兩個例子可以看到,在使用GROUP BY 這樣的語句,在沒有特殊優(yōu)化的情況下,,MYSQL 8 不在使用 FILESORT 排序后,速度有了大幅度的提升,這說明在沒有優(yōu)化的情況下,MYSQL 8 對于排序和GROUP BY 這樣的查詢時有利的,并且隨著提取的數(shù)據(jù)越多,則越快,這對 DEVELOPER 是一個好消息。

MYSQL 8

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MySQL 5.7

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

上面的測試中,如果不帶有Join salaries 的情況下,實際情況是MYSQL 5,7 還會稍微的好一些,MYSQL 8 會將not exists not in 里面的子查詢先 Materialized  一下,相對來說,如果 not exists not in 里面的要排除的數(shù)據(jù)越少越好,條件越精準越好,這樣MYSQL 8 的 antijoin 的功能就會能幫助查詢更有效的排除數(shù)據(jù)。這里在所有都一樣的情況下,MYSQL 8 比 MYSQL 5.7 快 2倍的時間。

當然也有一些差強人意的,下面的兩個查詢時間上基本相同,可能需要更多的將語句重新格式的時間,mysql 8 還慢了0.2秒

MYSQL 8 

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別

總體來說mysql 在hash join , 免filesort 的新功能對大部分查詢語句是有幫助的,但實際上在測試中有些簡單的語句,MYSQL 8 并不能占據(jù)什么便宜,或者說還可能會比MYSQL 5.7 慢了“一眨眼” 的功夫。

以上是“MYSQL 8和MYSQL 5.7在復雜查詢中有哪些區(qū)別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)
AI