[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요 영한님, 강의 잘 듣고 있습니다 ㅎㅎ
취준생때 영한님강의로 공부하고, 현재는 취업해서 JPA+Springboot로 실무에 참여하고있어요!
[올해의 계약금액을 월별로 조회] 하는 API를 작성해야하는데요
테이블관계는 아래와같습니다. (한명이 여러 계약을 가질수 있고, 하나의 계약에 여러개의 입금내역을 가집니다)
[사람] 1 : N [계약] 1 : N [입금내역]
입금내역을 조회하지만, 조건절에 사람테이블에 있는 컬럼을 사용해야해서 전부 조인을 걸었어요.
SELECT ...
FROM 사람
INNER JOIN 계약 ON ,,,
INNER JOIN 입금 ON ...
WHERE 사람.조건 = 조건
AND 계약.날짜 between '202201' and '202205'
GROUPBY 계약날짜 -- 월별
문제는 건수가 너무 많다는건데요.. 해당 데이터는 전체 몇백만건으로,
[계약] - [입금내역]간 조인에 많은 시간이 소요되고 있어요..
해당부분을 해소하기위한 방법으로는 어떤게있을까요? 아래 방법이 가능할까요?
1. 서비스단에서 월별로 쿼리를 나누어서 실행 for문을 통해 총 5회의 쿼리를 수행...
2. 쿼리자체에서 5번으로 수행해서 결과도출 (UNION ALL)
영한님이였으면 어떻게 성능을 개선했을지 궁금합니다..