|
|
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
分享:
大家都在看
猜你喜欢

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

218人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

83人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 武凤涛

471人订阅学习

读 书 +更多

软件设计师考试全真模拟试题及解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《软件设计师考试大纲》的要求,参照《软件设计师教程》及近年来考试试题编写的,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客