👉 Batch Size 설정이란?
- Hibernate를 사용할 때 세션 당 한 번에 데이터베이스에 보낼 수 있는 SQL 문의 최대 수를 설정하는 것을 의미
- 이는 성능 향상을 위해 사용되며, 특히 대량의 데이터를 처리할 때 유용
👉 Batch Size에 대한 간단한 설명
- 설정이 적용되는 경우
- @Transactional 어노테이션이 붙은 메소드 내에서만 동작하며, 각각의 트랜잭션 별로 적용
- EntityManager가 flush되거나 트랜잭션이 커밋될 때만 적용
- INSERT, UPDATE, DELETE 작업에만 적용되며, SELECT 작업에는 적용되지 않음
- Batch Size를 설정하지 않으면, 기본적으로 batch 처리가 비활성화 됨
- 이는 실제로 Hibernate가 각각의 SQL 문을 개별적으로 실행하며, 한 번에 하나의 SQL 문만 데이터베이스에 전송한다는 것을 의미
- 따라서, batch size를 설정하지 않으면 한 번에 데이터베이스에 보낼 수 있는 SQL 문의 최대 수는 1이 됨
- Batch Size를 너무 크게 설정하면 메모리 사용량이 증가하므로 적절한 값을 선택해야 함
- 일반적으로 batch size는 10~50 사이 값을 권장
👉 Batch Size 설정하는 방법
application.properties
spring.jpa.properties.hibernate.jdbc.batch_size=5
application.yml
spring:
jpa:
properties:
hibernate:
jdbc:
batch_size: 5
📌 추가 설명
- 위의 설정에서 5는 한 번에 데이터베이스에 보낼 수 있는 SQL 문의 최대 수를 의미
- 값을 조정하여 애플리케이션의 성능을 최적화할 수 있음