Dot Programming/Spring
2021. 11. 22.
[Spring] 조회 API 성능 최적화하기 1 - 지연로딩(Lazy Loading)과 페치 조인(Fetch Join) : ToOne 매핑
조회 API 성능 최적화하기 1 - 지연로딩(Lazy Loading)과 페치 조인(Fetch Join) Order 테이블을 기준으로 ToOne으로 연관관계 매핑되어있는 테이블을 조회할 때 발생하는 N+1문제와 그에 대한 대책에 대해서 다뤄본다. Order 1개만 조회할 때는 그에 따른 Member와 Delivery도 1개이기 때문에 큰 상관이 없다. 최대 3개의 쿼리가 발생한다. fetch join을 사용하면 1번으로 줄일 수 있다. 그런데 Order.findAll()을 하게 되면 어떻게 될까? 1번의 쿼리로 N개의 Order가 호출되면 그에 부수적으로 N개의 Member와 N개의 Delivery를 조회하게 된다. 즉 2N+1쿼리가 발생하여 일명 N+1 문제가 발생하게 된다. 이 또한 fetch join..