카테고리 없음
jpa EntityGraph
흰색남자
2022. 7. 19. 16:39
EntityGraph 쓴거나 안쓴거나 결과의 차이는 없다. 하지만 쿼리가 몇 번 날라가느냐가 차이이다.
뭐 결과는 같아서 귀찮아서 안쓰는 사람도 있을텐데, 성능문제를 따지자면 쓰는게 맞다.
아래 사진은 EntityGraph를 쓴거다. 쿼리가 한번만 날라간다. // 현재 유저 2명
아래는 안쓴거 쿼리가 2번 날라갔다. // 현재 유저 2명
아래도 안쓴거 //현재 유저 4명
4번의 쿼리가 실행되었다. 사람이 많을수록 쿼리가 많이 날라감 >> aws rds쓴다고 가정했을때 요금 폭탄맞음.
하지만 EntityGraph를 쓴다면?
한번만 날라간다.
이렇게 EntityGraph를 사용하면 DB IO를 절약할 수 있다.
이방법 말고도 jpql + fetch 를 쓴다던가 querydsl을 쓴다던가 여러 방법이 있다.
나는 개인적으로 이 entity graph를 쓰거나 querydsl이 편한 것 같다.
설정만 해놓으면 querydsl이 더 편한 것 같기도하고,,,
처음 하는 사람은 설정 없는 entitygraph가 더 편할 수 있을 것 같다.
entitygraph는 leftjoin만 가능하다. << 어디서 중심을 잡고 쿼리 날리는게 중요함.
하지만 querydsl은 그딴거 필요없이 그냥 때려박으면 잘 되서 난 querydsl이 더 편한 것 같다.