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
'웹 개발 > Spring' 카테고리의 다른 글
[Spring] JPA - 테이블 생성시 컬럼 순서 정렬 (0) | 2021.03.16 |
---|---|
[Spring] JPA - How to fix “Error executing DDL ”alter table events drop foreign key {foreign key} “ via JDBC Statement” (0) | 2021.03.12 |
[Spring] JPA - Could not write JSON: Infinite recursion (StackOverflowError) (0) | 2021.03.11 |
[Spring] Spring REST Docs 호스트 변경 (0) | 2021.03.04 |
[Spring] @Bean와 @Component의 차이 (0) | 2021.02.24 |