웹 개발/Spring
[Spring] JPA - @OneToOne 조인 전략을 left join -> inner join 으로 변경하기
K1MY0UNGHAN
2021. 3. 12. 11:53
Entity 객체 조회 시 Hibernate SQL 로그를 확인해보니,
@OneToOne으로 매핑한 객체에 left join(= left outer join)이 사용되는 것을 확인했다.
경험해본 RDBMS들의 Optimizer는 모두 left join보다 inner join을 사용했을 경우 성능이 더 좋았기 때문에
필수적인 경우가 아니면 left join을 모두 inner join으로 바꾸고 싶었다.
생각해보면 연관된 외래키가 nullable인 경우에는 left join으로 가져와야 하는 것이 당연하기 때문에
@ManyToOne, @OneToOne의 default 조인 전략이 left join인 것 또한 당연하다.
참고:
JPA 조인 전략 변경하기
JPA 조인(JOIN) 전략 엔티티(Entity)들 간의 관계가 맺어져 있다면, JPA는 조인(JOIN)을 이용해서 데이터베이스를 조회하게 됩니다. 조인전략중에 성능이 가장 좋은 조인 전략은 내부조인(INNER JOIN)입
siyoon210.tistory.com