JPA N+1 문제

Rudy·2023년 11월 10일
0

JPA N+1 문제 무엇일까?

요청이 1개의 쿼리 로 처리 되길 기대했는데 N개의 추가 쿼리가 발행 하는 현상 말한다

OneToMany 상황

  1. 지연 로딩 이란?
    엔티티를 조회할 시 사용할 때까지 데이터 로딩을 미루는 현상을 말한다.

해결방법
Fetch join: 연관된 엔티티나 컬렉션을 한 번에 같이 조회하는 기능

최초에 관련된 데이터를 한꺼번에 가져와서 객체화 해줬기 때문에 DB를 거치지 않고,데이터 꺼내서 반환한다 1개의 쿼리로 문제 해결이 가능해진다

  1. 즉시 로딩 이란?
    위에서 말한 지연 로딩이 반대 개념이다 . 즉시 로딩을 하는 현상을 말한다.
    즉시 로딩을 사용하면 안될까?

쿼리를 만들 때 연관관계가 있는 엔티티는 신경 안쓰고 조회 대상이 되는 Entity 기준으로만 쿼리를 만든다

작성중.....

profile
주니어 개발자

0개의 댓글