SQL 최적화 실전 비교 – SELECT 두 번 쓸까 JOIN 한 번 쓸까
2024. 1. 2. 11:13
728x90

SELECT 2번 vs SELECT ... LEFT JOIN – 어떤 게 더 효율적일까?

데이터를 가져올 때 단순히 두 번의 SELECT 쿼리를 날리는 방식과
한 번의 LEFT JOIN으로 처리하는 방식은 성능, 가독성, 유지보수 측면에서 차이가 있습니다.


SELECT 2번 방식

SELECT * FROM users WHERE id = 1;
SELECT * FROM orders WHERE user_id = 1;
  • 각각 독립적인 쿼리로 수행됨
  • 코드 흐름은 직관적일 수 있음
  • 여러 테이블을 조건 분리하여 명확하게 처리 가능
  • 하지만 응답 횟수가 많아질수록 네트워크 비용 증가

SELECT ... LEFT JOIN 방식

SELECT users.*, orders.*
FROM users
LEFT JOIN orders ON users.id = orders.user_id
WHERE users.id = 1;
  • 한 번의 쿼리로 두 테이블의 데이터를 함께 조회
  • 관계형 데이터에서 자연스럽고 효율적인 처리 방식
  • 특히 UI에 함께 보여줘야 할 때 적합
  • JOIN이 많거나 WHERE 조건이 복잡할 경우 성능 이슈 발생 가능

무엇이 더 효율적인가?

기준 SELECT 2번 LEFT JOIN
네트워크 호출 수 2번 이상 1번
가독성 간단한 경우 더 명확 JOIN이 많아지면 복잡해질 수 있음
성능 소량 데이터는 빠름 대량 조회에 유리
프론트 전달 로직 분리 시 유리 연관된 테이블 출력 시 유리

언제 무엇을 선택할까?

  • 비즈니스 로직에 따라 테이블이 완전히 분리되어 있을 때 → SELECT 2번
  • 리스트 뷰에서 함께 보여줘야 할 때 → LEFT JOIN
  • 쿼리 튜닝이 필요할 경우 → EXPLAIN으로 실행 계획 확인 필수

결론

  • JOIN은 데이터 관계가 강할수록 효과적
  • SELECT 2번은 의존성이 낮거나 단건 처리에 유리
  • 상황에 따라 병행 고려, 성능 테스트 권장

EXPLAIN을 통해 실행 계획을 꼭 확인하고, 테이블 row 수, index, 쿼리빈도 등을 기준으로 판단하는 것이 좋습니다.

반응형