銀河鉄道~ぽんこつエンジニアのブログ~

思いつきで書いています。

JavaによるMySQLのINSERT高速化

JavaプログラムでJDBCを使用して接続している場合以下の方法でMySQLのマルチプルインサートを使用することができる。
マルチプルインサートは複数のINSERT文を一回のSQLで発行する方法で、高速化が図れる。

やり方
①ドライバの呼び出し部分に以下の文字列をパラメータとして記載
・rewriteBatchedStatements=true
Javaプログラムで「addBatch」「executeBatch」を使用し以下のように記載

PreparedStatement statement = connection.prepareStatement(sql);

for (Bean bean : List) {
statement.setString(1, bean.getNo);
statement.setString(2, bean.getName);
statement.addBatch();
}
statement.executeBatch();

補足:SELECTを高速化したい場合、PreparedStatement.setFechSizeを使用すると取得する件数の単位を帰らるので高速化できる。