인프런 커뮤니티 질문&답변

이동명님의 프로필 이미지
이동명

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파

Lazy 로딩 , FetchJoin 그리고 @BatchSize

해결된 질문

작성

·

580

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
공부를 하면서 제가 생각하는 부분이 맞는지 확인차 질문 드립니다.

 

모든 XToOne 은 fetch:Lazy로 되어있다는 가정

  1. Member와 Order는 양방향 참조

    1. Member를 사용할 때 Order는 가끔 사용되는경우

      1. Lazy 로 하고 Order를 사용할 때 마다 쿼리 나감

    2. 자주 사용되는 경우

      1. 패치조인을 사용해서 한번에 같이 불러온다.

  2. 컬렉션인 경우

    1. XToOne은 패치 조인 하고 @BatchSize를 사용해서 페이징 및 최적화 까지 챙긴다

       

제 생각으론 동작방법만 제대로 알고 있으면 실무에서는

default_batch_fetch_size 는 계속 등록해서 글로벌로 사용하면 좋아보이는데 그게 맞나요 ?

답변 1

1

안녕하세요. 이동명님, 공식 서포터즈 y2gcoder입니다.

항상 무조건이라는 말씀을 드리기가 쉽지 않은 것 같습니다. 짧은 제 경험으로는 말씀하신 것과 같이 default_batch_fetch_size를 미리 걸어놓고 lazy를 기본으로 사용하되 연관객체까지 한꺼번에 필요할 때는 fetch join을 이용하는 것을 기본 설정으로 가져가고 있고, 해당 설정에서 문제가 생긴 적은 없었습니다.

감사합니다.

이동명님의 프로필 이미지
이동명
질문자

감사합니다 :)

이동명님의 프로필 이미지
이동명

작성한 질문수

질문하기