如何优化使用java插入数据的处理速度?

Sam*_*hra 0 java mysql

我需要读取带有标题和数据的Excel文件,并根据从文件中提取的标头和放置值在数据库(MySQL)中创建一个表.为此,我使用JDBC在DB Table中创建和插入数据(使用的预处理语句).

它工作得很好但是当记录数量增加时--suppose文件包含200000或更多记录 - 它会变慢.请指导我如何优化将数据插入数据库表的处理速度.

谢谢,Sameek

Asa*_*saf 6

要优化它,首先应在所有插入中使用相同的PreparedStatement对象.

要进一步优化代码,您可以发送批量更新.

例如5批次:

//create table
PreparedStatement ps = conn.prepareStatement(sql);
for(int i =0; i < rows.length; ++i) {
  if(i != 0 && i%5 == 0) {
    pstmt.executeBatch();
  }
  pstmt.setString(1, rows[i].getName());
  pstmt.setLong(2, rows[i].getId());
  pstmt.addBatch();
}
pstmt.executeBatch();
Run Code Online (Sandbox Code Playgroud)