ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요?
Table of Content
ORM?
Object Relational Mapping, 객체-관계 매핑
•
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
•
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
•
객체 모델과 관계형 모델 간에 불일치가 존재한다.
•
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
쿼리가 복잡해지는 것은 자동 생성이 원인인 경우가 많다.
일단 JPA와 같은 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성 하면서 의도하지 않은 복잡한 쿼리 문제가 발생하게 되는데,
ORM을 통해 쿼리가 복잡해지는 경우 로우 레벨 쿼리 사용하고 쿼리를 튜닝하여 최적화 할 수 있습니다. 쿼리 튜닝은 JPQL과 Querydsl을 사용하는 것이 권장되고 있습니다.
그 외 배치 처리, 캐싱, 지연로딩과 같이 ORM의 성능 향상 기능을 활용 합니다. 이러한 기능을 활용하여 복잡한 쿼리의 부하를 줄일 수 있습니다.
Related Posts
Search