天天看點

大家好,今天詳細給大家講解一下mysql檔案排序的原理。mysql檔案排序分為兩種方式,第一個是單路排序,第二個是雙路排

作者:Java大咖秀

大家好,今天詳細給大家講解一下mysql檔案排序的原理。

mysql檔案排序分為兩種方式,第一個是單路排序,第二個是雙路排序。

·單路排序是一次性取出滿足條件行的所有字段。然後在file filer中進行排序。

·排序完成後再根據需要取出需要的排序字段,和能定位到行資料的id。然後在word file 中進行排序。

排序完成後再根據需要取出相應的字段。買搜口通過系統容量max file for short file 的大小和查詢字段的總大小來判斷,是使用單路排序還是雙路排序。

如果它的大小小于max file for salt file file 則使用單路排序。如果它的大小大于max file for salt file ole則使用雙路排序。

接下來講一講單路排序的詳細過程。

·第一步:從鎖引中找到滿足條件的資料id。

·第二步:根據資料id查到所有的字段值,放到salt file 中。

·第三步:從鎖引中找到下一個滿足條件的資料id。

·第四步:重複第二步的操作,直到找不到滿足條件的資料後。

·第五步:對file file中的資料按排序字段進行排序。

·第六步:它就會傳回給用戶端。

·接下來講一講雙路排序的詳細過程。

·雙錄排序的第一步:它也是從鎖引中找到滿足條件的鎖引資料id。

·第二步:根據id取出整個資料行,将排序字段和id 字段放到 short 八份中。

·第三步:從縮影中找到下一個滿足條件的資料id。

·第四步:重複查找,直到找不到滿足條件的資料。

·第五步:是對 file 中的資料,按排序字段進行排序。

·第六步:便利好short file 中的id和排序字段。根據id回表查詢到所有的字段,傳回給用戶端。其實比較兩個排序模式,單路排序會把所有的字段都放到shortbuff中。而雙路排序隻會把id和需要排序的字段放到 shortbuff中。

然後根據id回到原表查到所有的字段傳回給用戶端。

如果在實際的場景中,var file sort的配置比較小,就可以把100g file store配置的相對比較小一點,然後讓走雙路排序,這樣可以一次性排更多的資料行。如果有條件的話可以把 short file 配置的相對大一點。配置 max for short date也相對大一點,這樣可以使用單路排序。

是以麥搜口通過控制max file 的大小來控制使用不同的排序模式,這樣可以在不同的場景下進而提升排序效率。有一點需要注意的就是,雖然在shortfile中進行排序的效率,高于在磁盤中的排序,但是不能因為這個随意調整shortfile的大小,因為賣搜口的好,多參數都是經過優化的,不要随意調整。

大家好,今天詳細給大家講解一下mysql檔案排序的原理。mysql檔案排序分為兩種方式,第一個是單路排序,第二個是雙路排
大家好,今天詳細給大家講解一下mysql檔案排序的原理。mysql檔案排序分為兩種方式,第一個是單路排序,第二個是雙路排
大家好,今天詳細給大家講解一下mysql檔案排序的原理。mysql檔案排序分為兩種方式,第一個是單路排序,第二個是雙路排
大家好,今天詳細給大家講解一下mysql檔案排序的原理。mysql檔案排序分為兩種方式,第一個是單路排序,第二個是雙路排