查詢優化器無法做優化的情況,又可以分為合理的和不合理的。
整理自《數據庫查詢優化器的藝術》,每個例子後面都有頁碼
合理的情況
常量+in+子查詢,且子查詢與上層的表沒有關係,沒有做上拉優化
select t1.* from t1 where 10 in (select t2.id from t2)
這種情況沒法做上拉優化。查詢計劃是對t2做一個順序掃描,結果作為t1表的filte
SOME與ANY的含義相同,且 =ANY 或 =SOME 都等價於IN
select emp_id from t1 where owner =ANY (select name from t2 where id=100);
select emp_id from t1 where owner =SOME (select name from t2 where id=100);
上面都等