반응형
auditLog는 기록도 기록이지만 조회가 가장 중요한 API이다.
조회 성능을 개선하기 위해 어떤 방식이 있을가 고민하던 중 인덱싱을 적용하기로 했다.
인덱싱은 커서 기반 페이징에서 커서 키로 사용하는
CREATE INDEX idx_auditlog_loggedat_id
ON audit_log (logged_at DESC, id DESC);
logged_at , id 에 인덱싱을 걸었다.
인덱싱 적용 후 이전과 동일하게 마지막 페이지를 조회했더니
2025-08-08 18:35:58.215 [https-jsse-nio-443-exec-9] INFO com.welcommu.moduleapi.aop.ExecutionTimeLogger - ⏱️ LogsWithCursor com.welcommu.moduleservice.logging.AuditLogSearchServiceImpl.searchLogs(ActionType,TargetType,String,String,Long,LocalDateTime,Long,int) executed in 23 ms
2025-08-08 18:35:58.216 [https-jsse-nio-443-exec-9] INFO com.welcommu.moduleapi.aop.ExecutionTimeLogger - ⏱️ ResponseEntity com.welcommu.moduleapi.logging.AuditLogController.search(ActionType,TargetType,String,String,Long,LocalDateTime,Long,int) executed in 24 ms
23ms가 나온다..
너무 극단적이라 당황스럽다..
반응형
'Spring' 카테고리의 다른 글
Audit Log 조회 API 성능 개선기 - 2 (8) | 2025.08.08 |
---|---|
Audit Log 조회 API 성능 개선기 - 1 (4) | 2025.07.19 |
Github Action 환경에서 모든 테스트코드가 실패한다. (0) | 2025.07.19 |
테스트 코드는 왜 짜야할까.. (0) | 2025.07.17 |
DB에 인덱싱을 적용하면 왜 빨라질까? (0) | 2025.06.09 |