BATCH FETCH
Batch Fetch는 지연 로딩을 묶어서 왕복 횟수를 줄인다
Lazy Loading을 유지하면서 IN 조건으로 여러 연관 대상을 한 번에 가져와 N번 쿼리를 줄인다.
LazyBatchFetch join
기본 Lazy
목록 1000건에서 연관 접근 시 1 + 1000번 쿼리로 커질 수 있다.
Batch Fetch
batch_size 100이면 1 + 10번 안팎으로 줄어든다.
Fetch Join
한 번에 가져올 수 있지만 컬렉션 중복과 pagination을 조심한다.
spring.jpa.properties.hibernate.default_batch_fetch_size=100 값은 목록 크기, IN 조건 비용, 실행 계획을 보고 조정