inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Trong thực tế! Spring Boot và JPA Usage 2 - Phát triển API và tối ưu hóa hiệu suất

Tra cứu đơn hàng V3: Chuyển đổi thực thể thành DTO - Tối ưu hóa tìm nạp tham gia

fetch join VS fetch join 페이징 궁금증

178

nick

38 câu hỏi đã được viết

0

강의 영상 24분쯤 fetch join은 페이징 처리가 불가능하다고 말씀해주셨는데(사용하게 될 시 메모리에 임시로 모든 데이터 적재 후 페이징 처리로 설명), 페이징을 하지 않을 경우에도 Order rows가 1만건 이라면 1만건 모두 조회되는 것 아닌가요?

이럴 때도 메모리에 대한 문제가 있을 것 같은데 제가 잘못 이해한 것인지 설명 부탁드리겠습니다!

java spring spring-boot jpa

Câu trả lời 2

0

yh

안녕하세요. nickheatlhy님

생각하신 내용이 맞습니다.

그래서 이 문제는 바로 다음 내용에서 설명하는 페이징과 한계 돌파를 보시면 이해가 되실거에요 🙂

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. nickheatlhy님. fetch join과 페이징에 대한 질문을 해주셨네요.

컬렉션 fetch join을 사용할 경우, 페이징을 데이터베이스 단에서 수행하는 것이 불가능합니다. 대신 애플리케이션 메모리에서 페이징이 수행되기 때문에 문제가 발생할 수 있습니다. Fetch join으로 가져온 데이터는 중복된 행으로 인해 데이터의 양이 매우 많아질 수 있으며, 모든 데이터를 메모리에 적재한 뒤에 페이징을 처리하게 됩니다. 그렇기 때문에, 메모리 사용량이 증가하고 OutOfMemory 오류가 발생할 위험이 높아집니다.

단순히 페이징을 하지 않고 fetch join으로 데이터를 가져온다면, 역시 많은 양의 데이터를 메모리에 올리게 되므로 메모리 문제는 여전히 존재할 수 있습니다. 대량의 데이터를 효율적으로 처리하기 위해서는 페이징을 DB 단에서 처리할 수 있는 전략을 고려해야 합니다.

관련된 다른 질문들로는 다음이 있습니다:
1. “일대다 관계에서의 컬렉션 fetch join과 페이징에 대한 질문”
2. “fetch join outOfMemory 경우에 대해서 질문드립니다.”
3. “일대다 페치 조인과 페이징에 대해”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

강의 관련 외 질문입니다.

0

62

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

84

1

BeanCreationException

0

86

3

Update 후 UpdateMemberResponse 매핑할 때

0

46

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

96

2

페이징 + 검색조건 관련해서 질문드립니다.

0

70

1

Query Dsl Q파일 질문입니다.

0

81

1

루트 쿼리라는것은

0

58

1

메서드를 분리하는 기준

0

61

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

108

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

83

2

fetch join과 영속화와 OSIV의 관계

0

83

2

Distinct 사용 전 결과에 대한 의문

0

112

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

55

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

77

2

dto 필드 속 엔티티 여부

0

58

1

뷰템플릿 사용 시

0

76

2

Result 클래스 관련 질문

0

56

1

@PostConstruct 프록시 관련 질문드립니다

0

85

1

DTO 대신 Form 사용은 안되나요?

0

133

1

OSIV ON 상태일 때

0

94

1

양방향 연관관계 알아보는 법?

0

102

1

16강 17강 간단 정리 이게 맞을까요 ?

0

161

2

데이터 초기화 시 CASCADE 옵션 궁금증

0

87

2