java - 什么时候在 JDBC 上使用批处理操作更快?

标签 java sql batch-file

我有一段代码在数据库上执行大约 500,000 次插入。它现在在每次迭代时调用 PreparedStatement 的 executeUpdate 的循环中完成。将所有 500,000 个插入添加到批处理中并仅调用一次 executeBatch 会更快吗?

最佳答案

将 PreparedStatement 与批量更新工具结合使用会产生最有效的结果(来自 Sun JDBC doc ):

// turn off autocommit
con.setAutoCommit(false);

PreparedStatement stmt = con.prepareStatement(
    "INSERT INTO employees VALUES (?, ?)");

stmt.setInt(1, 2000);
stmt.setString(2, "Kelly Kaufmann");
stmt.addBatch();

stmt.setInt(1, 3000);
stmt.setString(2, "Bill Barnes");
stmt.addBatch();

// submit the batch for execution
int[] updateCounts = stmt.executeBatch();

关于java - 什么时候在 JDBC 上使用批处理操作更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1289476/

相关文章:

java - Android Studio,缺少android.support.annotation包

sql - Oracle 唯一索引

c - 如何通过 Windows 批处理文件将值传递给 scanf()

java - 在循环之前放入一条语句

java - AspectJ 和 NoClassDefFoundError

php - MySQL 中固定数量字符串的最佳实践?

batch-file - 在Windows Server中获取进程的pid

windows - 在批处理脚本中打开一个新的 CMD 窗口

java - 列出 webstarted 应用程序的 jar 中的所有文件

MySQL:使用来自不同表的选择插入多个列