-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Labels
♻️ refactor리펙터링된 코드리펙터링된 코드
Description
🔥 구현 기능
1. N+1
현재 Blueprint Searching 관련 JPQL에서 N+1 문제가 발생하고 있다. 이는 Blueprint의 oneToMany 관계인 orderBlueprints, cartBlueprints으로 인해 발생한다. 현재 지연로딩이 설정되어 있지만, 연관 관계의 두 테이블을 추가로 조회하는 쿼리가 발생한다. 따라서, 간단하게 Fetch Join을 이용하여 모든 쿼리를 한 번에 수행하도록 변경하려고 한다.
2. 읽기 전용 트랜잭션
Search 서비스는 읽기 전용이기 때문에, 읽기 전용 트랜잭션을 통해 스냅샷 생성을 막아 성능 향상이 가능할 것으로 보인다. 따라서, 읽기 전용 트랜잭션 적용을 통해 성능 향상을 목표로 한다.
3. 인덱싱
Search의 경우 이름과 작가, 카테고리에 의해 검색된다. 따라서 해당 칼럼들에 대한 인덱싱을 통한 성능향상을 기대해볼 수 있을 것 같다.
🚧 작업목록
- N+1 문제 해결
- 읽기 전용 트랜잭션 도입
- 인덱싱 도입
⏰ 추정 시간
3시간
🔗 관련 링크
N+1 문제
[JPA] DB Index 개념과 JPA에서 Index 설정하기
JPA 페이징 Performance 향상 방법
Metadata
Metadata
Assignees
Labels
♻️ refactor리펙터링된 코드리펙터링된 코드