order by null 的作用

时间:2024-12-22 09:04:08

在SQL中order by null有什么用吗?这是我在一次面试时面试官问我的问题,当时我是懵的。他让我猜一下,我说不排序?没想到被我猜对了

  不排序你就别用order by啊!为什么要用order by null?

我们看一下下面这条SQL分析

explain select * from sc group by sc.Sid

order by null 的作用

在extra中我们看到 using filesort 外部排序,这肯定是影响SQL性能的。尤其是在用到group by时,即使你不需要排序,MySQL会默认根据分组字段order by。

其实,你根本就不需要排序,无辜拉低了你的SQL性能。此时,就可以考虑一下order by null:

explain select * from sc group by sc.Sid order by null

order by null 的作用

可以看到外部排序没有了。(即使select得到的数据只有一条,MySQL仍然会using filesort。)