JOIN과 OR을 함께 사용하면 성능이 저하될 수 있다
페이지 정보

영삼이
본문
✅ JOIN
과 OR
을 함께 사용하면 성능이 저하될 수 있다
OR
조건을JOIN
전에 처리하는 것이 더 효율적이다
❌ JOIN
과 OR
을 함께 사용하는 경우
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'paid' OR o.status = 'shipped';
-
OR
조건이JOIN
후에 적용되어 -
두 가지 조건을 모두 매칭하려고 하므로 불필요한 row가 많이 생성될 수 있음
-
성능에 큰 부담을 줄 수 있음
✅ OR
을 JOIN
전에 처리
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id
AND (o.status = 'paid' OR o.status = 'shipped');
-
JOIN
자체에서 조건을 미리 처리 -
필요한 row만 조인하여 성능을 최적화
추가 팁
-
OR
이 포함된 조건은JOIN
전에 필터링함으로써
불필요한 row 생성을 미리 차단할 수 있다. -
JOIN
은 항상 조건을 미리 한정한 뒤 사용하는 것이 중요하다.
✔️ OR
조건이 있을 때는 JOIN
전에 처리하는 것이 성능에 유리하다.
불필요한 데이터가 메모리로 올라오는 걸 방지하는 것이 핵심이다.
- 이전글INNER JOIN과 LEFT JOIN의 차이점을 명확히 이해하고 사용하라 25.03.28
- 다음글GROUP BY는 필수 컬럼만 포함하라 25.03.28
댓글목록
등록된 댓글이 없습니다.