假設一個嵌套查詢是這樣的:SQL嵌套查詢處理
SELECT *
FROM Table1
WHERE Table1.val in
(
Select Table2.val
from Table2
where Table2.val>3
)
所以我的問題是你如何實際查詢處理器評估這一點 -
- 難道他們先評估最裏面的查詢,存儲結果暫時,然後在上層查詢中使用它? [如果子查詢的結果是大的,臨時存儲可能沒有足夠]
- 還是他們評估外部查詢的每個結果的外部查詢[需要外部查詢的太多評價]
上午我錯過了什麼,它實際上實現了哪種方式?
嗯..嗯查詢處理器將首先從你寫進關係操作什麼轉換查詢,然後對這些操作進行優化。這些微操作將被結合起來,給你你想要的結果。 – cjds