使用预准备语句批量更新在 Java 中批量插入
我正在尝试用大约50,000行(每行10列)填充Java中的结果集,然后使用的方法将它们插入到另一个表中。batchExecute
PreparedStatement
为了使这个过程更快,我做了一些研究,发现在将数据读取到resultSet中时,fetchSize起着重要作用。
具有非常低的 fetchSize 可能会导致到服务器的行程过多,而非常高的 fetchSize 可能会阻塞网络资源,因此我进行了一些实验,并设置了适合我的基础结构的最佳大小。
我正在读取此结果集并创建插入语句以插入到不同数据库的另一个表中。
像这样的东西(只是一个示例,而不是真正的代码):
for (i=0 ; i<=50000 ; i++) {
statement.setString(1, "a@a.com");
statement.setLong(2, 1);
statement.addBatch();
}
statement.executeBatch();
- executeBatch 方法会尝试一次发送所有数据吗?
- 有没有办法定义批大小?
- 有没有更好的方法来加快批量插入的过程?
批量更新(50,000 行 10 列)时,使用可更新的还是具有批处理执行的预处理状态更好?ResultSet