반응형
JPA Batch Insert API 성능 개선기 (GenerationType.IDENTITY의 한계점)
개발/JPA2024. 5. 21. 22:01JPA Batch Insert API 성능 개선기 (GenerationType.IDENTITY의 한계점)

JPA Batch Insert API 성능 개선기 (GenerationType.IDENTITY의 한계점) 개요안녕하세요? 오늘은 성능적으로 문제가 있던 API의 처리속도를 간단한 해결방법을 통하여 96%가량 개선한 사례를 적어보려 합니다. 먼저, 문제의 API는 여러 건의 데이터를 받아 데이터베이스에 저장하는 기능을 수행하고 있었는데, 보통의 경우 100건 정도를 일괄적으로 처리하는 API였습니다.로컬에서 1회 호출해 본 결과 100건 기준으로 약 21989ms정도 걸리는 것을 확인했고, 테스트를 시도한 데이터의 건 수가 많은 것은 아니라고 생각하기에, 이는 성능적으로 문제가 있다고 생각하여 처리 속도를 개선하기로 마음을 먹었습니다. 코드를 살펴보니, 다음과 같이 Spring Data JPA의 saveA..

N+1 문제상황 만들고 해결해보기
개발/JPA2023. 6. 21. 01:14N+1 문제상황 만들고 해결해보기

JPA로 개발을 하게된다면 필연적으로 N+1문제를 겪을 수 밖에 없다고 생각합니다. 저같은 경우 게시판 프로젝트를 진행하면서 JPA를 학습하면서 말로만 듣던 N+1문제를 정말 많이 만나게 되었는데 이를 해결하면서 공부한 내용을 바탕으로 N+1 문제상황을 직접 예제코드로 만들어 해결하는 과정을 포스팅해보도록 하겠습니다. N+1문제상황 만들기 이해를 쉽게하기 위하여 게시판 서비스의 게시글 엔티티인 Post와 회원 엔티티인 User를 다음과 같이 간단하게 작성해보겠습니다. - Post package com.hw.study.entity; import java.util.List; import lombok.*; import javax.persistence.*; @Entity @NoArgsConstructor(acc..

반응형
image
loading