N+1
-
JPA에서
@ManyToOne또는@OneToMany관계를 사용한다면, 특정 목록 조회할 때마다 1번(전체 목록)+N번(각각 연관 데이터) = N+1 번 쿼리가 발생한다는 것. -
즉, 목록이 100개면 101번 쿼리가 DB로 나가는 것.
-
N+1을 피하는 법.
- 관계 어노테이션 사용하지 않고, ID 만 저장하기
- 프론트로 비유하자면, 목록 100개 다 fetch 하지 않고, 필요한 목록 id 만 파람으로 전달해서 fetch 하는거