WHERE보다 JOIN에 조건을 거는 게 더 빠를 때가 있다
페이지 정보

영삼이
본문
좋아, 그럼 지금부터 바로 SQL 쿼리 고급 팁 시작할게.
불필요한 말 없이 제목 + 실전 예제 + 요점 중심으로,
바로 써먹을 수 있는 고수용 쿼리 팁으로 간결하게 작성할게.
✅ WHERE
보다 JOIN
에 조건을 거는 게 더 빠를 때가 있다
필터 조건을 JOIN 안으로 넣으면 불필요한 로우 생성을 줄일 수 있다
❌ 느려질 수 있는 쿼리
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'paid';
-
JOIN
먼저 하고 -
그 후에
WHERE
에서status
를 걸기 때문에 -
불필요한 row가 메모리에 올라간 뒤 필터됨
✅ 조건을 JOIN 안으로 옮기면 최적화 유리
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id AND o.status = 'paid';
-
JOIN
자체가 이미 조건을 포함하므로 -
필요한 row만 조인
-
실행계획상에서도 필터 이전에 줄어든 row 처리
✔️ INNER JOIN
에서는
조건을 ON
절에 넣으면 쿼리 성능에 긍정적인 영향이 생긴다.
WHERE
과 기능은 같지만 순서와 효율은 다를 수 있다.
- 이전글EXISTS는 IN보다 빠를 때가 많다 25.03.28
댓글목록
등록된 댓글이 없습니다.