Potrzebuję wstawić kilkaset milionów rekordów do bazy danych mysql db. Jestem wsadowy wkładając go milion za jednym razem. Zobacz mój kod poniżej. Wydaje się być powolny. Czy istnieje sposób na jej optymalizację?Wydajność wsadu wsadowego 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);
Twój kod został nieco uszkodzony (a obcięte przedwcześnie) – Uri
BTW, którego kierowca używasz? Ogólny JDBC lub złącze JDBC-Mysql? – Uri
Używam com.mysql.jdbc.Driver – user157195