SQL

SQL

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

페이지 정보

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

본문

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';
  • JOINWHERE 절에서 조건을 걸면,
    불필요한 데이터메모리에 올라간 후 필터링되므로 성능에 부담이 된다.


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을 사용할 때는 먼저 필터링 후 조인하는 방식이 성능상 유리하다.
불필요한 데이터가 메모리로 올라가는 일을 방지할 수 있다.

댓글목록

등록된 댓글이 없습니다.