1、使用索引的已有順序 2、filesort演算法 filesort演算法的執行流程 filesort相關的參數 sort_buffer_size 演算法排序緩衝區的大小,線程級緩存 max_length_for_sort_data 決定選擇那種不同的策略進行排序(兩種排序演算法) 1、two-pass演算法 ...
1、使用索引的已有順序
2、filesort演算法
filesort演算法的執行流程
filesort相關的參數
sort_buffer_size
演算法排序緩衝區的大小,線程級緩存
max_length_for_sort_data
決定選擇那種不同的策略進行排序(兩種排序演算法)
1、single-pass演算法(rowid排序)
當查詢語句所取出的所有欄位的長度大於max_length_for_sort_data,第一次從表中取出排序欄位和行指針,第二次根據排好序的行指針從表中取出其它欄位的值。優點行數據進行了壓縮,缺點需要兩次訪問表數據
2、two-pass演算法(全欄位排序)
當max_length_for_sort_data小於查詢語句所取出的所有欄位的長度,一次性從表中取出所查詢的所有欄位,在排序緩衝區中進行排序操作。優點只訪問了一次表數據,缺點數據沒有進行壓縮,會耗用更多排序緩衝區的空間