今天我在mysql中发现有这么一句select * from bb order by null 看不出这句话的时间呀,后来找了才知道order by null用途是强制对查询结果禁用排序.
order by null用途是强制对查询结果禁用排序,通过explain检查查询语句时候,如果看到Extra列中有Using filesort,这是对性能有一定影响的,特别是使用了group by时,就算你没有显示的指定order by,mysql会默认按照分组字段进行排序,某些情况下是没有必要使用排序的,例如在处理表报数据的时候,把原始表数据统计后插入到一个用于报表查询的表,则完全可以可以使用order by null来取消排序,代码如下:
- insert into reportTable(day, clicks, revenue)
- select day, count(*), sum(revenue) from clickOriginTalbe
- group by day
- order by null
MySQL在排序时(Order by),Null值在什么位置?
答:在ASC时,null在最前面,desc时在最后面. |