🐞 버그 설명
MySQL은 기본적으로 Sequence를 지원하지 않는다.
따라서, INSERT를 배치 처리하여 성능 최적화를 하려 했었지만, 작동되지 않았다.
(SELECT를 통해 한 번에 Batch로 읽어오는 것은 가능하다.)
관련 출력
2024-04-08T13:17:21.977+09:00 DEBUG 16587 --- [nio-8080-exec-2] org.hibernate.SQL :
insert
into
dm_user
(created_at, deleted, dm_id, updated_at, user_id, dm_user_id)
values
(?, ?, ?, ?, ?, default)
2024-04-08T13:17:21.983+09:00 DEBUG 16587 --- [nio-8080-exec-2] org.hibernate.SQL :
insert
into
dm_user
(created_at, deleted, dm_id, updated_at, user_id, dm_user_id)
values
(?, ?, ?, ?, ?, default)
만약, MySQL에서 Sequence ID 생성 전략을 사용하고 싶다면 따로 Sequence 테이블을 만들어야 한다.
Batch Insert가 필요하다면 MySQL 사용시 해당 내용을 숙지해야 한다.
아래 블로그는 MySQL에서 Sequence 사용시 설정하는데 참고할 수 있다.
✅ 예상 결과
INSERT 문 Batch 처리
❗ 실제 결과
MySQL은 ID 생성 전략 중 SEQUENCE를 기본적으로 지원하지 않음
💻 버그 시뮬레이션
.
📄 로그
2024-04-08T13:17:21.977+09:00 DEBUG 16587 --- [nio-8080-exec-2] org.hibernate.SQL :
insert
into
dm_user
(created_at, deleted, dm_id, updated_at, user_id, dm_user_id)
values
(?, ?, ?, ?, ?, default)
2024-04-08T13:17:21.983+09:00 DEBUG 16587 --- [nio-8080-exec-2] org.hibernate.SQL :
insert
into
dm_user
(created_at, deleted, dm_id, updated_at, user_id, dm_user_id)
values
(?, ?, ?, ?, ?, default)
🌏 환경
No response
🙋🏻 More
No response
'프로젝트 > FitTrip' 카테고리의 다른 글
[트러블슈팅] JPA의 deleteAll() 대신 IN을 사용한 성능 최적화 (0) | 2024.06.25 |
---|---|
[트러블슈팅] 서버 배포간 다양한 CORS 오류 (0) | 2024.06.25 |
[트러블슈팅] API Gateway OpenFeign 사용 오류 (0) | 2024.06.25 |
[트러블슈팅] OpenFeign과 Spring Cloud Gateway간의 순환 참조 오류 (0) | 2024.06.25 |
[FitTrip] 캡스톤 프로젝트 진행 2024.03 ~ 2024.06 회고 (0) | 2024.06.23 |