N+1 문제를 맞게 이해한 것인지 잘 모르겠습니다.
660
요니
작성한 질문수 41
3
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
이번 강의를 통해 공부하면서 N+1문제를 아래와 같이
이해하였습니다.
ex) 모든 주문 내역을 가져오는 경우
-> 실제로 나가는 쿼리는 select * from orders
쿼리 한방이지만,
1) 이때 지연로딩인 경우 , 조회한 order에 대해 member나 delivery를 필요로 하는 경우에 각 order별로 member나 delivery 조회 쿼리가 N번씩 나가게 되고
2) 즉시 로딩인 경우, select * from orders
라는 모든 주문 조회 쿼리 한방이 나간 후,
곧바로 조회한 order들과 연과된 member와 delivery 조회 쿼리가 이어서 나가게 된다.
(단 이떄 예측할 수 없는 쿼리가 나갈 수 있음.)
즉 정리하면 즉시로딩과 지연로딩 모두 N+1 문제가 발생할 수 있지만,
즉시로딩은 예측할 수 없는 쿼리가 나갈 수도 있어 최적화 시키기 어려운 반면,
지연 로딩은 페치 조인을 사용하여 order를 조회하면서 동일 쿼리 상에서 member나 delivery도 함께 가져오게 하는방법으로 최적화 시킬 수 있으니,
지연로딩을 사용하는것이 옳다.
라고 이해하였는데,
맞게 이해한 것인지 잘 모르겠습니다.
감사합니다.
답변 1
강의 관련 외 질문입니다.
0
68
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
92
1
BeanCreationException
0
91
3
Update 후 UpdateMemberResponse 매핑할 때
0
50
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
101
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
84
1
루트 쿼리라는것은
0
60
1
메서드를 분리하는 기준
0
65
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
111
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
86
2
fetch join과 영속화와 OSIV의 관계
0
87
2
Distinct 사용 전 결과에 대한 의문
0
117
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
59
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
78
2
dto 필드 속 엔티티 여부
0
60
1
뷰템플릿 사용 시
0
77
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
86
1
DTO 대신 Form 사용은 안되나요?
0
138
1
OSIV ON 상태일 때
0
96
1
fetch join VS fetch join 페이징 궁금증
0
187
2
양방향 연관관계 알아보는 법?
0
106
1
16강 17강 간단 정리 이게 맞을까요 ?
0
166
2





