Mysql中use filesort的誤區

誤區一字面誤區

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

誤區二人云亦云

百度上多被你們否認不是外部排序,認爲和file這個關鍵字不要緊。用的是快速排序。可是總以爲不可能這麼平白無故叫filesort的,因而去官網查了下。mysql

正解

官方解釋git

果真,你們認爲的只有一半,正解是上面兩種都有,use filesort會在內存中排序,可是若是結果集過大不能使用內存就會使用外部排序。(不管filesort底層用的哪一種排序都是額外的排序,只不過內存排序比外部排序快一點,都須要優化sql啦~這裏只探究filesort原理github

驗證

下載mysql源碼

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

也能夠去官網下載,和下載mysql包同樣,不贅述,只須要在最後一步中Select Operating System選擇Source Code優化

查看源碼

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

~~~~~~server

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

相關文章
相關標籤/搜索