카테고리 없음

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이 더 편한 것 같다.