在使用GROUP BY 时候需要注意的地方

本文介绍了一个关于SQL分组排序的常见误区,并提供了解决方案。通过使用EXPLAIN观察到的执行计划,发现即使未显式指定ORDER BY,MySQL也会默认按分组字段排序。文章提出可以通过ORDER BY NULL取消不必要的排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发过程中常常会遇到sql 进行分组的业务,笔者在编码过程中就犯了这样一个低级错误,还好项目经理及时指出来了,避免了以后的问题,给大家分享一下。

使用EXPLAIN 可以看到执行计划,看到Extra列中有Using filesort,这是对性能有一定影响的,特别是使用了group by时,就算你没有显示的指定order by,mysql会默认按照分组字段进行排序。某些情况下是没有必要使用排序的,这个 filesort 并不是说通过磁盘文件进行排序,而只是告诉我们进行了一个排序操作而已。

这里写图片描述

则完全可以可以使用order by null来取消排序

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值