SQL

SQL

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

페이지 정보

profile_image
영삼이
0건 52회 25-03-28 15:20

본문

좋아, 그럼 지금부터 바로 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과 기능은 같지만 순서와 효율은 다를 수 있다.

댓글목록

등록된 댓글이 없습니다.