100만 건 데이터 삽입

MySQL에 인덱스를 추가하고 성능 비교를 해보기 위해 DB에 데이터를 많이 넣어야 할 필요가 생겼다.

그래서 아래처럼 한번에 100만 건의 데이터를 삽입하는 Bulk Insert를 해보려고 한다.

 

기본적인 과정은 이전 글에서와 똑같다.

하지만 100만 건의 데이터를 생성하기 위해서는 메모리를 꽤 잡아먹는다.

만약 VM에 충분한 힙 메모리가 설정되어 있지 않다면 OutOfMemory 에러가 발생할 것이다.

그래서 이것과 관련해서 설정을 정리해보려 한다.


사용 기술

  • Spring Boot 3.2.4 / gradle-kotlin
  • Java 17, IntelliJ
  • MySQL 8.4
  • EasyRandom, SpringDataJpa, JDBC

1. 인텔리제이 설정

1-1. 메모리 표시기 활성화

윈도우에서는 Ctrl + Shift + A 를 입력하고 메모리를 검색하면 아래와 같은 창을 볼 수 있다.

맥에서는 Cmd + Shift + A

여기서 메모리 표시기를 켜고, 우측 하단에 추가된 메모리 표시기를 확인한다.

1-2. VM 설정 편집

마찬가지로 Ctrl + Shift + A 로 VM을 검색한 후 아래 사진처럼 설정한다.

여기서 -Xmx 설정이 힙 메모리 상한 설정이다.

 

여기서 해준 설정은 인텔리제이 VM 설정이기 때문에 아래 1-3 처럼 테스트 환경을 인텔리제이 빌드로 변경해야 한다.

만약 Gradle 환경에서 하고 싶을 경우 Gradle 힙 메모리 상한을 설정해주면 된다.

1-3. 테스트 환경 설정 변경

아래처럼 인텔리제이 설정 창에 들어가서 테스트 설정을 변경해준다.


2. 결과

OutOfMemory 에러 없이 DB에 100만 건의 데이터가 잘 들어간걸 확인할 수 있다.

 

+ Recent posts