JOIN 후 필터링보다는 WHERE에서 필터링하는 게 성능에 유리하다
페이지 정보

영삼이
본문
✅ JOIN
후 필터링보다는 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
절에서 조건을 걸면,
불필요한 데이터가 메모리에 올라간 후 필터링되므로 성능에 부담이 된다.
✅ WHERE
절에서 먼저 필터링한 후 조인
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id AND o.status = 'paid';
-
WHERE
절이 아닌JOIN
조건에서 필터링 -
필요한 데이터만 조인하므로 메모리 사용과 성능이 최적화됨
이유
-
JOIN
전에 조건을 걸면, 조인된 테이블에 불필요한 row가 올라가지 않음 -
필터링이 먼저 적용되어 더 적은 데이터만 조인
✔️ JOIN
을 사용할 때는 먼저 필터링 후 조인하는 방식이 성능상 유리하다.
불필요한 데이터가 메모리로 올라가는 일을 방지할 수 있다.
- 이전글UPDATE 문에서 조건을 빠르게 처리하려면 인덱스를 활용하라 25.03.28
- 다음글DISTINCT는 성능 저하를 일으킬 수 있다 — 중복 데이터 처리 시 GROUP BY로 대체하라 25.03.28
댓글목록
등록된 댓글이 없습니다.