SQL執行順序
02-25
1. FROM 子句 組裝來自不同數據源的數據
2. WHERE 子句 基於指定的條件對記錄進行篩選
3. GROUP BY 子句 將數據劃分為多個分組
4. 使用聚合函數進行計算
5. 使用HAVING子句篩選分組
6. 計算所有的表達式
7. 使用ORDER BY對結果集進行排序
8. select 獲取相應列
9. limit截取結果集
Mysql 從4.1版本開始支持子查詢,使用子查詢可以進行select語句的嵌套查詢,即一個人select查詢的結果作為另一個select語句的條件。子查詢可以一次性的完成很多邏輯上需要多個步驟才能完成SQL操作。所以子查詢雖然可以使查詢語句很靈活,但是查詢效率並不高。
執行子查詢時,MySQL需要為內層查詢語句的查詢結構建立一個臨時表。然後外層查詢語句從臨時表中查詢記錄。查詢完畢後再撤銷這些臨時表。因此子查詢的速度會受到一定影響。如果查詢的數據量比較大,這種影響就會隨之增大。
在Mysql中,可以使用連接(JOIN)查詢來替代子查詢。連接查詢不需要創建臨時表,其速度比子查詢要快,如果查詢中使用索引的話,性能會更好。
推薦閱讀:
※MySQL · 性能優化 · MySQL常見SQL錯誤用法
※mysql DBA技術難度低為什麼工資比oracle高?
※同一台伺服器上裝MySQL和oracle會有衝突么?
※【我的DBA好友系列】之隔壁老王在練腰
※一觸即發,2017年,資料庫世界的諸神之戰
TAG:MySQL |