Mysql order by語句的優化

2021-07-12 08:06:26 字數 641 閱讀 4743

在某些情況中,mysql可以使用乙個索引來滿足order by子句,而不需要額外的排序。where條件和order by使用相同的索引,並且order by的順序和索引順序相同,並且order by的字段都是公升序或者都是降序。

例如:下列sql可以使用索引。

select * from t1 order by key_part1,key_part2,... ;

select * from t1 where key_part1=1 order by key_part1 desc, key_part2 desc;

select * from t1 order by key_part1 desc, key_part2 desc;

但是以下情況不使用索引。

1) select * from t1 order by key_part1 desc, key_part2 asc;

--order by的字段混合asc和desc

2) select * from t1 where key2=constant order by key1;

--用於查詢行的關鍵字與order by中所使用的不相同

3) select * from t1 order by key1, key2;

--對不同的關鍵字使用order by

MySQL order by 語句對null值排序

今天在寫sql中,遇到對 null 值進行排序的問題,發現在mysql中,null為最小值。如果我們在排序欄位中,存在null的情況,那麼我們需要手動指定 null 的順序。先看一下原始資料 查詢結果如下 先按rank公升序,null放在最後,在對null值根據時間降序排列 總結關鍵點在於if is...

MySQL Order by 語句用法與優化詳解

order by語句是用來排序的,經常我們會使用到order by來進行排序,下面我給大家來講講order by用法與優化排序,有需要的同學可參考 複製 如下 select column name s from table name order by column name 例子 sql建立 複製 ...

關於mysql order by 的手記

如果我們需要對讀取的資料進行排序,我們就可以使用 mysql 的order by子句來設定你想按哪個欄位哪種方式來進行排序,再返回搜尋結果。以下是 sql select 語句使用 order by 子句將查詢資料排序後再返回資料 select field1,field2,fieldn from ta...