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
本文作者:松华老师
本文来自云栖社区合作伙伴“老叶茶馆”,了解相关信息可以关注“老叶茶馆”。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章