MySQL 테이블에 행 삽입을 최적화하려면 지원되는 구문을 활용할 수 있습니다.
INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
그러나 , 동적으로 삽입할 행의 수가 많은 경우 preparedStatement를 사용하면 어렵습니다.
PreparedStatement를 사용하여 여러 행을 동적으로 삽입하려면 addBatch() 메서드를 사용하여 일괄 처리를 생성하고 ExecuteBatch()를 사용하여 실행할 수 있습니다.
예는 다음과 같습니다.
public void save(List<Entity> entities) throws SQLException { try ( Connection connection = database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT); ) { int i = 0; for (Entity entity : entities) { statement.setString(1, entity.getSomeProperty()); // ... statement.addBatch(); i++; if (i % 1000 == 0 || i == entities.size()) { statement.executeBatch(); // Execute every 1000 items. } } } }
이 접근 방식은 배치를 실행할 때마다 JDBC 드라이버 또는 데이터베이스 배치 길이의 제한을 고려하여 항목 1000개.
일괄 처리와 함께 preparedStatement를 사용할 수 없는 경우 여러 행을 삽입하는 대체 방법은 다음과 같습니다.
참고 자료:
위 내용은 preparedstatements를 사용하여 MySQL에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!