JPA 대신 JDBC batchUpdate로 BULK 처리 성능 40배 향상!

by DD
2년 전
조회수 12

JPA는 BULK 처리에 적합하지 않으며, JDBC batchUpdate를 통해 성능 개선을 시도함

JDBC batchUpdate 사용 시, PK를 알 수 없는 문제 발생 및 해결 방안 제시

JPA 대비 JDBC 사용 시, 1.7초성능 40배 향상

JPA의 한계와 JDBC batchUpdate

JPA는 객체-관계 매핑(ORM) 기술로 개발 편의성을 제공하지만, 대량 데이터 처리에는 성능 저하를 유발한다. JDBC batchUpdate를 사용하면, BULK INSERT를 통해 데이터베이스 I/O를 줄여 성능을 개선할 수 있다. 따라서, 대용량 데이터 처리 시 JDBC를 고려해야 한다.

PK 문제 해결: 애플리케이션 연산 활용

JDBC batchUpdate 사용 시, Auto Increment PK를 알 수 없는 문제가 발생한다. last_insert_id()를 통해 첫 번째 PK를 얻고, 순차적 PK 증가를 이용하여 나머지 PK를 계산한다. 결과적으로, 외래키 설정 문제를 해결하고, BULK INSERT를 유지할 수 있다.

JPA와 JDBC의 트레이드오프

JPA는 개발 편의성을 제공하지만, 성능 저하의 단점이 있다. JDBCbatchUpdate를 통해 성능을 향상시키지만, 복잡도 증가의 단점이 있다. 따라서, JPA 영속성JDBC의 혼용 시, 각 기술의 특성을 이해하고, 상황에 맞는 기술 선택이 중요하다.

BULK 처리 Write에 집중해서 개선해보기