阿里巴巴編碼規范有這么一例
【推薦】如果有order by場景,請注意利用索引的有序性。 order by最后的字段是組合索引的一部分,並且放在索引組合順序的最后,避免出現file_sort的情況,影響查詢性能。
如果order by的列上有索引,那么就可以利用索引的有序性進行排序;
如果沒有索引,那么就是file_sort,可以理解為外部排序,就是把select的數據,按照order by的列 ,在內存中進行一次排序,然后返回結果。
什么是索引的有序性?
簡單理解為,索引本身就是對某列建立的一個可以按照一定順序規格訪問的目錄。通過 order by的列上的索引來訪問,那么默認獲取到的值就是按照這列排好的順序。就是利用到了索引的有序性。
order by排序原理
1.利用索引的有序性獲取有序數據
2.利用內存/磁盤文件排序獲取結果
- 雙路排序:是首先根據相應的條件取出相應的排序字段和可以直接定位行數據的行指針信息,然后在sort buffer 中進行排序。
2)單路排序:是一次性取出滿足條件行的所有字段,然后在sort buffer中進行排序。
作者:一個不靠譜的程序員
來源:CSDN
原文:https://blog.csdn.net/u013705066/article/details/82257099
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!