SQL

SQL

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

페이지 정보

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

본문

JOINOR을 함께 사용하면 성능이 저하될 수 있다

OR 조건을 JOIN 전에 처리하는 것이 더 효율적이다


JOINOR을 함께 사용하는 경우

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가 많이 생성될 수 있음

  • 성능에 큰 부담을 줄 수 있음


ORJOIN 전에 처리

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 전에 처리하는 것이 성능에 유리하다.
불필요한 데이터가 메모리로 올라오는 걸 방지하는 것이 핵심이다.

댓글목록

등록된 댓글이 없습니다.