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