繁体   English   中英

DBUnit FlatXMLDataSet对于MySQL容器化数据库的插入非常慢

[英]DBUnit FlatXMLDataSet insert extremely slow for MySQL containerized database

我有一个FlatXMLDataSet,它由大约263k行组成,我正尝试将它们加载到MySQL数据库中。 我有一个较小的数据集(5k行),没有任何问题。 大型数据集并不太复杂(名称,地址,电子邮件等)。

我尝试过的

禁用外键检查

SET FOREIGN_KEY_CHECKS=0;

设定批次大小

dbUnitConnection.getConfig().setProperty(org.dbunit.database.DatabaseConfig.FEATURE_BATCHED_STATEMENTS, true);
dbUnitConnection.getConfig().setProperty(org.dbunit.database.DatabaseConfig.PROPERTY_BATCH_SIZE, 20000);

为什么使用DBUnit将数据插入MySQL / MariaDB这么慢,并且有什么方法可以加快速度? 任何帮助/指针将不胜感激,因为我需要它来工作。

注意:同一数据集可以毫无问题地插入Oracle,Postgres,SQLServer等。

感谢Georg的评论,这大大加快了工作速度。

解决方案是将MySQL的autocommit设置为false,然后在数据加载后手动提交更改

jdbcConnection.setAutoCommit(false);
jdbcConnection.commit();

这样可以加快速度。 为了使其更快,我还必须禁用外键检查(我使用JDBC数据库url变量来完成此操作)

"url:port/schema?useSSL=false&sessionVariables=FOREIGN_KEY_CHECKS=0"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM