上一篇文章我們接觸了一些常用的 mysql 語句,當我們需要產生復雜的邏輯的時候,我們需要組合mysql語句,這時候的 mysql 語句又臭又長,那麼我們就有必要知道 mysql 語句執行的順序了。
比如一個 SELECT 語句中,既有 GROUP BY 子句又有 ORDER BY子句,還有 LIMIT 子句,那麼到底是哪個子句執行在先,哪個執行其次,哪個執行在後?通過下面的探究我們可以知道一二。
1.mysql 語句執行順序?
MySQL的語句一共分為11步,如下圖所標注的那樣,最先執行的總是FROM操作,最後執行的是LIMIT操作。其中每一個操作都會產生一張虛擬 的表,這個虛擬的表作為一個處理的輸入,只是這些虛擬的表對用戶來說是透明的,但是只有最後一個虛擬的表才會被作為結果返回。如果沒有在語句中指定某一個 子句,那麼將會跳過相應的步驟。
////end