天天看點

2020-11-22:mysql中,什麼是filesort?

福哥答案2020-11-22:

答案來自此連結:

如果mysql在排序的時候沒有使用到索引那麼就會輸出 using filesort。

filesort有兩種實作

1.一遍掃描

一遍掃描資料後将select需要的列資料以及排序的列資料都取出來,這樣就不需要進行第二遍掃描了。

2.兩遍掃描

第一遍掃描出需要排序的字段,然後進行排序後,根據排序結果,第二遍再掃描一下需要select的列資料。

具體采用哪種掃描是根據max_length_for_sort_data來判斷的。

如果需要的列資料一行可以放入max_length_for_sort_data則使用一遍掃描否則使用兩遍掃描。

評論