즉시 로딩(EAGER) : 연관된 엔티티를 같이 조회하기에 SQL문에서 join 연산이 일어난다.
-> 연관된 엔티티가 100개이면 100번의 JOIN 연산이 일어나기에 , 실무에서는 모~~든 조회는 [지연 로딩] 사용
(즉시 로딩에서도 위와 같은 경우를 [N+1]의 문제라고 부른다. 다만 즉시 로딩에서 발생하는 [N+1] 문제는 Lazy Loading
으로 바꾸는 것으로 해결이 된다. 우리는 여기서 Lazy Loading에서도 발생하는 [N+1] 문제를 알아 보고, 그 해결법은
Fetch Join에 대해서 알아 본다)
지연 로딩의 단점 : 아래 사이트 참조!
https://jbluke.tistory.com/382
Solution : Fetch Join을 사용!!!!
-> Fetch Join은 [지연 로딩]으로 인해 생기는 [N+1] 문제를 말끔히 해결해 주므로,
Fetch Join의 사용은 100% 필수이다.
[지연 로딩] + [Fetch Join]의 조합으로 JPA를 사용하는 것이 정석!!!
(Fetch Join을 모르면, JPA를 다룰 수 없다고 하셨다)
'CS 잡지식' 카테고리의 다른 글
세상에서 가장 좋은? Error는 Compile Error!!!! (0) | 2023.04.24 |
---|---|
JPA의 성능 최적화의 KEY POINT - Fetch Join (0) | 2023.04.24 |
Git,Git Hub 기본적인 사용법 (0) | 2023.04.12 |
다중성(1:1, 1:多 등)은 DB [Table]를 설계하기 위한 것이다. (0) | 2023.04.12 |
동적(dynamic)의 의미!!! (0) | 2023.02.25 |