1. 程式人生 > >MySQL 8.0裡GROUP BY有變化,注意了

MySQL 8.0裡GROUP BY有變化,注意了

如題所示,MySQL 8.0開始 group by 預設是沒有排序的,那MySQL 8.0之前和 8.0 就有可能結果出現不同 需要警惕

5ac6597c924ad996e4e99772be16520341ca3bc6

執行如下SQL:

a7dc425dad2f51b7428141ca7e195941cefdd09a

下面是8.0 版本:

ad1b4db9915af2e5f26290538b773e14ee81a3c0

執行相同的SQL:

1e070b6ef3254cc7c37deeabf26b253b8ea42da5

如果這種情況下 進行分頁

5.7 版本:

833b86530f53845d1e3f7558be30b66d10791654

8.0版本:

2ba911ee2aa24b76b34d9036094d37412a152db8

由上可見,兩個結果是不一樣的,原因是:8.0之前,group by 包含using filesort,而8.0開始是沒有的,為了避免這種問題,8.0開始除了索引替換排序的優化思路之外的相關排序,我們都必須使用order by來進行。

59d4fbe6b7940f932cd03a45f3eca00be6ba23eb


原文釋出時間為:2018-11-28 本文作者:鬆華老師 本文來自雲棲社群合作伙伴“
老葉茶館
”,瞭解相關資訊可以關注“ 老葉茶館”。