default_batch_fetch_size 의 크기는 적당한 사이즈를 골라야 하는데, 100~1000 사이를 선택하는 것을 권장한다.
이 전략을 SQL IN 절을 사용하는데, 데이터베이스에 따라 IN 절 파라미터를 1000으로 제한하기도 한다.
1000으로 잡으면 한번에 1000개를 DB에서 애플리케이션에 불러오므로 DB 에 순간 부하가 증가할 수 있다.
하지만 애플리케이션은 100이든 1000이든 결국 전체 데이터를 로딩해야 하므로 메모리 사용량이 같다.
1000으로 설정하는 것이 성능상 가장 좋지만,
결국 DB든 애플리케이션이든 순간 부하를 어디까지 견딜 수 있는지로 결정하면 된다
(사이즈를 너무 작게 잡으면, ROOP문이 많이 돌기에, SQL문이 많이 나간다)
'CS 잡지식' 카테고리의 다른 글
순환 참조 문제 (0) | 2023.05.05 |
---|---|
컬렉션(Collection) 조회 전략 2가지 (0) | 2023.05.05 |
(1 + N) 문제 해결책 - (Feat. Fetch Join, @BatchSize, batch_fetch_size 설정) (0) | 2023.05.05 |
[1:다]에서의 컬렉션(다) 조회 시 문제 : 페이징, (N+1)문제 (매우 매우 중요) (0) | 2023.05.05 |
컬렉션(Collection) fetch join 시, 발생하는 [데이터 중복] 문제!(소위 [데이터 뻥튀기]라고도 부름) (0) | 2023.05.05 |