인프런 커뮤니티 질문&답변

김인국님의 프로필 이미지
김인국

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

SQL 중심적인 개발의 문제점

IDENTITY Batch Insert 쿼리

작성

·

357

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
안녕하세요 강사님 덕분에 JPA를 재밌게 공부하고 있는 취준생입니다. Mysql에 Batch INSERT 쿼리에 대해 여쭤보고 싶습니다.

 

Mysql은 시퀀스를 지원하지 않아 @GeneratedValue를 IDENTITY로 할 경우 PK때문에 INSERT가 한건씩 나가게 됩니다. 그동안 네이티브 쿼리를 사용했을 때는 배열 같은 형태로 여러 Row를 한 개의 INSERT로 처리하였는데 이 경우에도네이티브 쿼리가 실용적인 대안이 될 수 있을까요??

Mysql에서 SEQUENCE 전략을 사용하면 PK 테이블을 생성 -> SELECT pk (비관적 락) -> UPDATE pk순으로 실행 되어 조금 더 찾아보니 allocateSize처럼 seq(pk) 뭉치로 가져 오는 방법이 있긴 한데 대부분의 경우 Native 쿼리로 푸는게 더 효율적이란 생각이 듭니다.
혹시 이 밖에 더 괜찮은 방안이 있을까요?? 감사합니다!!

답변 1

0

안녕하세요. 김인국님, 공식 서포터즈 y2gcoder입니다.

말씀하신 것처럼 identity 방식이고, DB를 건드리지 않고 대량의 bulk insert를 하려면 네이티브 쿼리를 이용하는 것이 합리적인 것 같습니다.

감사합니다.

김인국님의 프로필 이미지
김인국

작성한 질문수

질문하기