title: JDBC batch insert performance
body: <p>I need to insert a couple hundreds of millions of records into the mysql db.  I'm batch inserting  it 1 million at a time.  Please see my code below. It seems to be slow.  Is there any way to optimize it?</p>
  
  <pre><code>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&lt;vals.length; i++) {
              pstmt.setString(1, vals[i].toString());
              pstmt.addBatch();
          }
  
          // Execute the batch
          int [] updateCounts = pstmt.executeBatch();
          System.out.append("inserted "+updateCounts.length);
  </code></pre>