[英]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.