MySQL 容器化数据库的 DBUnit FlatXMLDataSet 插入速度极慢

DBUnit FlatXMLDataSet insert extremely slow for MySQL containerized database

我有一个包含大约 263k 行的 FlatXMLDataSet,我正试图将其加载到 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 如此缓慢,有什么方法可以加快速度吗?任何 help/pointers 都将不胜感激,因为我需要它来工作。

N.B。相同的数据集可以毫无问题地插入 Oracle、Postgres、SQLServer 等。

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

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

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

这样可以加快速度。为了让它更快,我还必须禁用外键检查(我使用 JDBC 数据库 url 变量)

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