테이블을 만들다보면 맵핑관계에 대해 고민하게 됀다.
이 테이블들은 서로 연관이 있지만 같이 사용되지 않을때와 같이 자주 사용될때
같이 자주사용하지 않는데 맵핑으로 인해 A라는 테이블을 불러올떄마다 B라는 테이블을 자동으로 불러오면 그만큼 쿼리가 나가니 성능이 저하 된다.
연관된 테이블이 자주 함꼐 사용 x
fethc = FetchType.LAZY
연관된 테이블이 자주 함께 사용
하지만 실무에서는 지연로딩을 권장
연관된 테이블을 즉시 불러온다(프록시 x)
즉시로딩의 문제점
즉시 로딩을 적용하면 예상하지 못한 SQL이 발생
-> 수많은 쿼리를 보내 성능저하 유발
JPQL 사용시 N+1 문제 발생
-> EX) select m from Member m 라는 쿼리를 하나 보냈지만(1) team 이라는 객체를 불러옴(N)
-> 지연로딩을 기본으로 한다. 자주 같이 사용하는 테이블 일때만 즉시로딩 설정,
-> 지연로딩설정 + 테이블 같이 불러오고싶다 = Fetch join 을 활용하자!