MySQL テーブルに行を挿入する次のコードがあります。
String sqlInsert = "INSERT INTO test_perf_table ( id, name) VALUES ( ?, ?);";
PreparedStatement sqlInsertSt = connection.prepareStatement(sqlInsert);
for (int i = 0; i < SETSIZE; i++) {
sqlInsertSt.setInt( 1, ids[i]);
sqlInsertSt.setString( 2, names[i]);
sqlInsertSt.addBatch();
}
int[] updateCounts = sqlInsertSt.executeBatch();
問題は、1 秒あたり 21 件のトランザクションしかアーカイブしていないことです。これは非常に低く、10 倍の速さを期待していました。
私の質問は、私のコードを改善する必要がありますか、それともデータベース構成の問題ですか?
MySQL サーバーは、mysql-connector-java-5.1.13 ドライバーを使用して、my-large.ini デフォルト構成を使用して、Win8 で @localhost を実行しています。
よくわかりませんが、何も指定しなかったので、エンジンは myisam だと思います
編集:
CREATE TABLE test_perf_table (
id INT,
name VARCHAR(20)
);