batch insert 질문있습니다!
451
20 asked
안녕하세요 주니어입니다!
이 강의랑은 동떨어진 질문이긴한데요 ㅎㅎ;
강의보면서 계속 이거저거 생각하다보니 영한님은 혹시 batch insert하실때 어떻게 하시는지 궁금합니다 !
회사에서는 JPA를 쓸때 기본키 전략이 IDENTITY이면 JPA로 batch insert하기가 어려워서 jdbcTemplate으로 한다고 하거든요.
수량은 대략 5,000~10,000건 단위이고요.
JPA초고수께서는 어떤방식으로 batch insert를 하시는지 갑자기 너무너무너무 궁금해져서 동떨어진 질문을 달게됐습니다..
아 그리고 강의보면서 항상 감사드리고있어요. 제 마음속의 스승님이십니다 !
Answer 2
1
안녕하세요. 창훈님^^
IDENTITY일 때가 좀 애매하지요. 이 경우 더 나은 성능 최적화를 하려면 jdbcTemplate를 사용하는 것이 좋습니다.
그런데, 이런 고민은 필요합니다. 5,000 ~ 10,000건 정도면 사실 배치처리에서는 매우 작은 분량입니다.
제가 선택하는 방법은 다음과 같습니다.
1. 가장 단순한 방법을 선택합니다. 그러니까 트랜잭션만 잘 묶어서 JPA만으로 처리합니다.
2. 여기서 기대하는 데이터와 성능에 따라서 적절한 방식을 찾습니다. 만약 1분안에 해당 배치처리가 끝나야 하는데, JPA만으로 했더니 10초 안에 끝이나더라, 하면 여기서 끝을 냅니다. 그런데 기대하는 데이터가 수십~ 수백만 건이고, 수분안에 끝나야 한다면 JPA 등록 전략을 변경하거나, JdbcTemplate 이나 각 데이터베이스가 제공하는 최적화 방법을 찾아서 사용합니다.
추가로 배치 성능과 관련해서는 JPA 책 15.4.3 배치 처리 ~ 15.4.5 트랜잭션을 지원하는 쓰기 지연과 성능 최적화 부분까지 읽어보시면 도움이 되실거에요.
감사합니다.
sdk 설정 오류
0
49
2
오탈자 - @Transactional
0
55
1
src/test/resources 테스트 경로 문제
0
50
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
63
1
MemberRepositoryTest 실행오류
0
80
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
183
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
137
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
51
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
71
1
기본 생성자
0
60
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
100
1
멤버서비스테스트 부분에서 막힙니다.
0
164
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
116
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
118
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
112
1
24분 27초 연관관계 편의 메서드 위치
0
113
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
108
2
빌드 툴, Gradle
0
58
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
76
2
Repository에서 EntityManager 주입 방식 차이
0
88
1
롬복과 사용자 정의 setter 메서드
0
71
1
주문 목록 조회 fetch join 질문드립니다
0
81
1
dirty checking 질문드립니다.
0
81
1
동시성 관련 질문입니다
0
73
1

