Мне нужно вставить пару сотен миллионов записей в mysql db. Я участвую в выпуске 1 миллион за один раз. См. Мой код ниже. Кажется, он медленный. Есть ли способ его оптимизировать?Производительность вставки в JDBC
try {
// Disable auto-commit
connection.setAutoCommit(false);
// Create a prepared statement
String sql = "INSERT INTO mytable (xxx), VALUES(?)";
PreparedStatement pstmt = connection.prepareStatement(sql);
Object[] vals=set.toArray();
for (int i=0; i<vals.length; i++) {
pstmt.setString(1, vals[i].toString());
pstmt.addBatch();
}
// Execute the batch
int [] updateCounts = pstmt.executeBatch();
System.out.append("inserted "+updateCounts.length);
Ваш код немного испорчен (и укорочен преждевременно) – Uri
BTW, какой драйвер вы используете? Общий JDBC или соединитель JDBC-Mysql? – Uri
Я использую com.mysql.jdbc.Driver – user157195