针对这个问题,问一问:executeBatch方法的效果如何?是否有一个性能基准,它说..“如果你有 1000 条记录要插入,使用 executeBatch 而不是 executeUpdate 可以节省 x 数量的数据库周期?”
或者这只是一个惯例?
编辑: 以下是我正在使用的东西:托管在 Z/OS 上的 DB2 V 8.1,这是一个 Web 应用程序,在执行最坏的情况下会一次性插入 80,000 条记录。
最佳答案
不确定您使用的是什么数据库。当我使用 db2 对此进行测试时,这是我看到的:
写入数据库:
1 次插入花费了 2500 微秒。
10 次插入花费了 6000 微秒。 (每次写入 600 微秒)
10000 次插入大约需要 100 万微秒。 (每次写入 100 微秒)
性能达到极限。 所有这一切都意味着发送消息的开销很大,而使用批处理方法可以最大限度地减少这种开销。当然,如果应用程序崩溃,大批量发送插入/更新会有丢失它们的风险。
另请注意:具体数字会因您的数据库和设置而异。所以你必须找到你自己的“甜蜜点”。但这给了你一个想法。
关于java - executeBatch 在 Prepared Statement 上的效果如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143053/