【发布时间】:2011-07-28 05:50:23
【问题描述】:
我正在创建一个休眠组件来与大量传入数据交互以持久保存,包括保存(创建)和更新数百万行的数据。
我知道 flush v commit 的主要区别,例如将“脏”数据刷新同步到可持久的底层数据中,并且刷新允许您在不实际提交的情况下与底层的可持久数据同步,以便事务可以如果需要,可以回滚。 Commit 本质上是将所有可持久化的数据提交到数据库。
我正在创建一个休眠组件来与大量传入数据交互以持久保存,包括保存(创建)和更新数百万行的数据。
我知道 flush v commit 的主要区别,例如将“脏”数据刷新同步到可持久的底层数据中,并且刷新允许您在不实际提交的情况下与底层的可持久数据同步,以便事务可以如果需要,可以回滚。 Commit 本质上是将所有可持久化的数据提交到数据库。
批量插入的合理尺寸是多少? 50 是合理性能的最大数量,例如:
for (i < 1000000)
if(i % 50 ) {
session.flush()
}
我收集到 50 应该与 hibernate.jdbc.batch_size 50 中的值匹配
【问题讨论】:
标签: performance hibernate commit flush