N+1
-
N+1 문제란? 그리고 해결방법 (feat. fetch join)개발/JPA & Hibernate 2021. 7. 18. 15:19
N+1 문제란? 객체 조회(1회)의 결과로 n개의 결과가 나온다고 했을 때, 조회된 객체안에 또 다른 객체가 있을 수 있다. 그렇다면 객체안의 객체를 조회하기 위해 또 다른 쿼리가 발생하는 경우가 있는데, 그러면 처음 조회된 n개의 결과만큼 새로운 쿼리가 발생한다. 즉, 첫 조회 1회 + 첫 조회 결과 n개 만큼의 결과가 증가하는 현상을 놓고 n+1 문제라고 한다. JPA에서 N+1 문제 해결 Fetch Join 사용 가장 일반적인 방법이다. Fetch Join에 관한 설명은 이 글 마지막에 정리했다. 애초에 사용될 데이터라면 지연로딩을 하지않고, 첫번째 쿼리때 Fetch Join 해서 가져오는 것이 좋다. Fetch Join에서도 설명하겠지만, Join이 아닌 Fetch Join의 차이는 Project..