MySQL 테이블에 여러 행을 효율적으로 삽입하려고 시도할 때 기존의 preparedStatement 접근 방식으로는 제한 사항에 직면할 수 있습니다. 삽입할 행 수는 preparedstatement에서 미리 결정됩니다.
삽입 프로세스를 최적화하기 위해 MySQL은 다음과 같은 일괄 삽입 구문을 제공합니다.
INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
일괄 삽입에 ReadyStatement 사용
사용 ReadyStatement 일괄 삽입 단계는 다음과 같습니다.
샘플 코드:
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. } } } }
주의할 점은 일괄 삽입을 수행할 때 특정 행 수마다 수행하는 것을 권장합니다( 예: 1000). 일부 JDBC 드라이버 또는 데이터베이스에는 배치 길이에 제한이 있을 수 있기 때문입니다.
관련 참조:
위 내용은 preparedstatement를 사용하여 MySQL에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!