Mysql中use filesort的誤區


誤區一字面誤區

use filesort排序,字面上理解是外部排序。

誤區二人雲亦雲

百度上多被大家否定不是外部排序,認為和file這個關鍵字沒關系。用的是快速排序。但是總覺得不可能這么無緣無故叫filesort的,於是去官網查了下。

正解

官方解釋

果然,大家認為的只有一半,正解是上面兩種都有,use filesort會在內存中排序,但是如果結果集過大不能使用內存就會使用外部排序。(無論filesort底層用的哪種排序都是額外的排序,只不過內存排序比外部排序快一點,都需要優化sql啦~這里只探究filesort原理

驗證

下載mysql源碼

直接訪問github地址https://github.com/mysql/mysql-server/進行下載或直接查看

也可以去官網下載,和下載mysql包一樣,不贅述,只需要在最后一步中Select Operating System選擇Source Code

查看源碼

拋磚引玉~由各位大佬分析一波~~~(悄悄的告訴你們,我壓根就找不到排序的c文件在哪...)

~~~~~~

原創,轉載請注明來源,翻版必究


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM