쿼리 조회 시 여러 번 조회와 한번에 조회하는 것 차이
여러 번 개별 조회
- 쿼리 횟수 증가 : 데이터가 많을 수록 쿼리 횟수가 기하급수적으로 증가. 데이터베이스 부하 증가
- 네트워크 지연 : 각 쿼리마다 네트워크 왕복 시간이 소요되어 전체 응답 시간이 길어짐
- 트랜잭션 관리 오버헤드 : 각 쿼리에 대해 트랜잭션을 관리해야 하므로 오버헤드 발생
한번에 조회
- 쿼리 횟수 감소 : 단일 쿼리로 다수의 쿼리를 조회하여 데이터베이스 부하 감소
- 응답 시간 단축 : 네트워크 왕복 횟수가 줄어들어 전체 응답 시간 개선
- 트랜잭션 효율성 : 하나의 트랜잭션으로 여러 작업을 처리하여 시스템 자원을 효율적으로 사용
쿼리 수를 줄이는게 무조건 좋은가?
장점
단점
- 쿼리 복잡성 증가
- 데이터 양이 많을 경우 메모리 사용량이 급증하여 성능이 저하될 수 있음 (페이징 처리하면 어느정도 해결 가능)
- 여러 쿼리를 결합해서 하나의 트랜잭션으로 처리하면 원자성을 보장할 수 있지만, 실패 시 롤백 비용이 커질 수 있음
1+N 문제 개선
결제 내역 조회 시
결제 내역 건당 해당하는 concert 정보를 가져와야 하므로 concert 서비스로 건당 요청을 보내게 됨


결제 row 하나당 concert 조회 쿼리가 한 개 발생하기 때문에 매우 비효율적임
조회할 concertId를 뽑아서 한번에 조회해오는 방식으로 변경


쿼리가 한개만 나가는 것을 확인