如何在休眠中启用批量插入?
问题内容:
使用休眠时,当我尝试使用以下方式启用批量插入时
<property name="jdbc.batch_size">50</property>
我得到以下输出:
[...] cfg.SettingsFactory INFO - JDBC batch updates for versioned data: disabled
[...] cfg.SettingsFactory INFO - Order SQL inserts for batching: disabled
然后这个:
[...] jdbc.AbstractBatcher DEBUG - Executing batch size: 1
batch size: 1
基本上没有。
我是否缺少设置?
问题答案:
原来这种情况下缺少的是:
<property name="order_inserts">true</property>
参考:https :
//forum.hibernate.org/viewtopic.php
?
p
=2374413,https
:
//stackoverflow.com/a/5240930/32453
或可能是hibernate.order_inserts。
现在我明白了
[...] cfg.SettingsFactory INFO - Order SQL inserts for batching: enabled
...
[...] Executing batch size: 2
频繁得多(任何大于1的值基本上都意味着它成功完成了批量插入)。
hibernate.jdbc.batch_versioned_data也可能有用。
jdbc:mysql:// localhost:3306 / batch?rewriteBatchedStatements =
true类型连接字符串也可能以某种方式相关。
https://forum.hibernate.org/viewtopic.php?p=2374413,另请参阅
Hibernate批量大小混淆