JDBC 드라이버 설정 옵션 중 하나로 MySQL에서 배치 SQL 실행 성능을 향상시킨다.
postgreSQL, Maria, Oracle에선 사용 불가.
Hibernate나 JPA에서 사용하는 batch_size와 비슷한 설정임.
여러 개의 INSERT/UPDATE 문을 한 번에 서버로 전송하도록 “재작성”하는 옵션.
rewriteBatchedStatements=true는 MySQL JDBC 드라이버가
PreparedStatement.addBatch()를 통해 누적된 SQL을 내부적으로 하나의 대용량 SQL 문으로 변환(rewrite) 해서 실행하도록 합니다.
이게 없으면 쿼리가 아이템 수 만큼 디비로 전송된다. 각각 쿼리 한건마다 커넥션이 필요해 성능이 떨어짐.
datasource생성할때 코드로 작성할 수도 있고, datasource URL에 설정할 수도 있음.
rewriteBatchedStatedments는 INSERT문에 대해서는 배치성 쿼리 재작성 하는건 맞지만,
batchUpdate()는 JDBC 드라이버가 제공하는 표준 API.
즉, 자바 코드에서 여러 개의 SQL 문을 하나의 네트워크 트립으로 DB에 보낼 수 있게 하는 기능.