就好比開個網頁要等個幾十秒難以讓人忍受。
而會發生這個問題即來自於 table 的 join 效率不彰,大家都知道當兩個 TABLE(A、B) 要 JOIN 時,
其 JOIN 的總數量是 A的總筆數 乘以 B的總筆數,
當 JOIN 時如果兩個 TABLE 皆以數千萬筆資料來擷取所需的資料是多麼可怕的一件事。
因此 SQL 語法的調校就變得非常的重要,如果能夠在 JOIN 前先過濾出所需的資料,那麼其效能理論上應該可以好很多。
所以不材就又翻了一下之前上課的課本,裡面提到 SQL 語法執行時的順序,其查詢時如下圖所示:
圖片來源:Modern Database Management 6th Ed Page.288
由上圖可以知道查詢時的步驟由上而下依次執行,而 WHERE 當中的執行順序則為由左至右依序執行。
汪老師說有過…
回覆刪除只要用要用資料庫,
這張圖,到死都要記得…
是啊!但是我在下SQL的時候早就已經都忘了。
回覆刪除還好有回去翻書才重拾回憶啊~~~