TIL

조인 vs 서브쿼리

하얀잔디 2025. 5. 13. 12:37

서브쿼리 예시 : 

 

    SELECT name FROM users WHERE id IN ( SELECT user_id FROM alerts WHERE created_at >= SYSDATE - 7 );

 

 

join 예시:

 

 

SELECT DISTINCT u.name FROM users u JOIN alerts a ON u.id = a.user_id WHERE a.created_at >= SYSDATE - 7;

 

 

                            서브쿼리                                                                     JOIN

가독성 단순한 경우 깔끔 복잡한 관계 표현에 유리
성능 중첩 반복 실행될 수 있음 → 느릴 수 있음 옵티마이저가 계획을 잘 짜주면 더 빠름
재사용성 어렵다 여러 테이블과 연결 용이
인덱스 활용 덜 유리한 경우 있음 인덱스 효율적으로 타기 좋음
옵티마이저 쿼리 내 구조 따라 달라짐 JOIN을 선호하는 경우 많음

 

 

 

결론

  • 서브쿼리는 간단한 로직, 중첩 조건 처리용으로 적절.
  • 성능 측면에서는 JOIN이 우세한 경우가 많음, 특히 대용량일수록.
  • 하지만 항상 그런 것은 아니므로 **실행계획(EXPLAIN PLAN)**으로 비교하는 것이 중요함!

 

 

'TIL' 카테고리의 다른 글

LazyInitializationException  (0) 2025.05.19
Kotlin vs Java  (0) 2025.05.13
LoadBalancer에 대해서  (0) 2025.05.12
LAG 란  (0) 2025.05.12
flutter speech_to_text 버전 에러  (0) 2025.04.28