Java 对于MySQL容器化数据库,DBUnit FlatXMLDataSet插入速度非常慢

Java 对于MySQL容器化数据库,DBUnit FlatXMLDataSet插入速度非常慢,java,mysql,database,mariadb,dbunit,Java,Mysql,Database,Mariadb,Dbunit,我有一个FlatXMLDataSet,由大约263k行组成,我正试图将其加载到MySQL数据库中。我有一个小得多的数据集(5k行),加载时没有任何问题。大数据集并不太复杂(姓名、地址、电子邮件等) 我尝试过的: 禁用外键检查 SET FOREIGN_KEY_CHECKS=0; 设置批处理大小 dbUnitConnection.getConfig().setProperty(org.dbunit.database.DatabaseConfig.FEATURE_BATCHED_STATEMENTS

我有一个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变量执行此操作)


是否已将自动提交设置为false?除了禁用外键检查外,还应禁用唯一键检查:
set unique\u checks=0
"url:port/schema?useSSL=false&sessionVariables=FOREIGN_KEY_CHECKS=0"