以前查詢mysql的時候,一般會用order by來進行排序,如果我們不需要對字段進行排序,應該怎么辦呢?這個時候就得用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 --phpfensi.com order by null