SQL優化常用方法18

inzaghi1984發表於2017-12-14
  1. 用EXISTS替代IN
    在許多基於基礎表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯接.在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢的效率. 低效:

SELECT * FROM EMP (基礎表)
WHERE EMPNO > 0 AND DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB`)
高效: SELECT * FROM EMP (基礎表)
WHERE EMPNO > 0 AND EXISTS (SELECT ‘X` FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB`)


相關文章