개발일기/CS(면접)

ORM을 사용하면서 쿼리가 복잡해지는 경우 해결방법은?

w.llama 2024. 7. 16. 21:02

ORM을 사용하면서 쿼리가 복잡해지는 경우 해결방법은?

  • 로우 쿼리 사용
    - 복잡한 쿼리의 경우, ORM을 통한 처리보다 직접 SQL문을 작성하는것이 성능적으로 더 효율적일 수 있다.
  • ORM의 Query Builder 활용
    - 대부분의 ORM은 Query Builder를 제공하여 SQL 쿼리를 동적으로 작성할 수 있는 기능을 제공한다. 이를 통해 복잡한 쿼리를 보다 유연하게 구성가능
  • 쿼리 최적화
    -ORM으로 생성된 쿼리를 분석하고, 불필요한 조인이나 서브쿼리를 제거하며, 인덱스를 활용하는 등의 최적화 작업을 수행한다.
  • 캐싱
    - 자주 사용되는 데이터나 쿼리 결과를 캐시에 저장하여 빠르게 접근할 수 있도록 한다
  • N+1 쿼리 문제 해결
    - 즉시 /지연 로딩을 적절히 사용하여 연관 관계에서 발생하는 N+1 쿼리 문제를 해결한다.
  • 프로젝션 사용
    - 필요한 필드만 선택하여 데이터를 조회하는 프로젝션 기능을 활용하여 데이터 전송량을 줄인다.
  • 페이지네이션
    - 한번에 많은 양의 데이터를 불러오는 대신, 필요한 만큼 데이터를 불러오도록 페이지네이션을 사용
  • 배치 처리
    - 여러 개의 데이터베이스 작업을 한번에 처리하여 네트워크 오버헤드를 줄인다.