👣 개요
Projection 연산을 통해 꼭 필요한 정보만 가져와 검색 속도 향상.
👣 실험 계획
Review 테이블의 Row 갯수는 10만 개 입니다.
그리고 Review 테이블의 칼럼 갯수는 총 5개 입니다.
만약 DTO에서 5개의 칼럼을 모두 요구하는 것이 아닌
특정 칼럼만 요구한다는 상황을 가정.
ReviewResponse 는 id, rating이라는 2개의 칼럼만 요구하고 있다.
실험에 사용되는 테스트 코드는 위와 같이
순차적으로 N번 메서드를 호출하고 해당 실행 시간을 확인하는 형태로 진행된다.
👣 실험 수행
⚗️ 대조군 - Projection 없이 그냥 모든 칼럼 가져오기.
50번 정도 메서드를 호출했을 때의 결과다.
16776 ms, 즉 16.776초가 걸림을 알 수 있다.
⚗️ 실험군 - 딱 필요한 칼럼만 가져오기.
위 코드와 같이 Repository Layer에서 아예 ReviewResponse 타입으로 전달하게 구성했다.
50번 정도 메서드를 호출했을 때의 결과다.
3351 ms, 즉 3.351초가 걸림을 알 수 있다.
👣 실험 결과
결과적으로 Projection 연산에 의한 검색 속도 향상은 꽤 큰 이점을 가져다 주었고 표로 정리하면 다음과 같다.
특징 | 수행 시간 | 향상 효과 | |
대조군 | 모든 칼럼 조회 | 16776 ms | - |
실험군 | 일부 칼럼 조회 | 3351 ms | 80.03% 감소 |
'프로젝트 회고' 카테고리의 다른 글
Optimizer 中 캐싱에 따른 검색 속도 향상 (0) | 2023.11.30 |
---|---|
Optimizer 中 N+1 문제 해결 시 검색 속도 향상 (0) | 2023.11.29 |
Optimizer 中 반정규화에 의한 통계 쿼리 실행 속도 향상 (0) | 2023.11.29 |
Optimizer 中 인덱스에 따른 삽입 속도 저하 (0) | 2023.11.28 |
Optimizer 中 인덱스 여부에 따른 검색 속도 향상 (0) | 2023.11.27 |