SQL 排序演算法

SQL 排序演算法

原本想找MSSQL的 無奈找不到
只能用MYSQL的(應該一樣八)

幾個重點
1.排序演算法有沒有top 或是limit的情況演算法完全不同。
2.下排序的時候會優先建立一個key-value 然後做快速排序然後作合併排序
3.有建立index的就可以跳過2的key-value的過程,等於是可以跳過整個表scan where條件,base整個不同



SQL執行順序

執行順序如下
 

1 FROM <left_table> 
2 ON <join_condition> 
3 <join_type> JOIN <right_table> 
4 WHERE <where_condition> 
5 GROUP BY <group_by_list> 
6 HAVING <having_condition> 
7 SELECT 
8 DISTINCT <select_list> 
9 ORDER BY <order_by_condition> 
10 LIMIT <limit_number>

refs :
資料庫排序
https://dev.mysql.com/doc/refman/8.0/en/order-by-optimization.html
https://dev.mysql.com/doc/refman/8.0/en/limit-optimization.html
執行順序
https://kknews.cc/zh-tw/code/3vlv4la.html