[Spring]JPA N + 1 문제
·
cs/dev
JPA N+1문제란?ORM JPA의 대표적인 성능 문제로 관련 데이터 조회를 할때 발생하는 비효율적인 쿼리 패턴입니다.최초 조회 쿼리 1번 실행 후 조회된 데이터 개수(N)만큼 추가 쿼리가 발생하여 총 N+1번의 쿼리가 실행되는 현상입니다. 예시: Post와 Comment가 일대다(1:N) 관계이고게시물 목록을 조회하는 쿼리(1번) 후, 각 게시물의 댓글 수를 구하기 위해 게시물 수만큼(N번) 추가 쿼리가 실행되는 경우입니다. [상황 별 해결 방법]- @EntityGraph: JPQL 작성 불필요, 간단한 조회 (단, LEFT OUTER JOIN 고정)- Fetch Join: 복잡한 조건, INNER JOIN 필요 시- @BatchSize: 페이징 필요 시 필수페이징 주의사항Fetch Join/@En..