|
|
51CTO旗下网站
|
|
移动端

MySQL8.0里GROUP BY有变化,注意了

如题所示,MySQL 8.0开始 group by 默认是没有排序的,那MySQL 8.0之前和 8.0 就有可能结果出现不同 需要警惕

作者:老叶茶馆来源:老叶茶馆|2018-11-28 15:00

如题所示,MySQL 8.0开始 group by 默认是没有排序的,那MySQL 8.0之前和 8.0 就有可能结果出现不同,需要警惕。

运行如下SQL:

下面是8.0 版本:

运行相同的SQL:

如果这种情况下,进行分页。

5.7 版本:

8.0版本:

由上可见,两个结果是不一样的,原因是:8.0之前,group by 包含using filesort,而8.0开始是没有的,为了避免这种问题,8.0开始除了索引替换排序的优化思路之外的相关排序,我们都必须使用order by来进行。

【编辑推荐】

  1. MySQL误删数据救命指南:开发人员必收藏
  2. 使用systemtap调试工具分析MySQL的性能
  3. MySQL基本知识点梳理和查询优化
  4. 深度解析双十一背后的阿里云Redis服务
  5. MySQL索引设计不可忽视的知识点
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +白菜送彩金大全

基于Project2003的项目管理

本书的上一版本《基于Project 2002的项目管理》上市以后得到了读者的欢迎,为了更好地将Project 2003新版本的应用介绍给读者,我们重新进行...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网