gpt4 book ai didi

java - DBUnit FlatXMLDataSet 对于 MySQL 容器化数据库插入速度极慢

转载 作者:行者123 更新时间:2023-11-29 15:38:46 25 4
gpt4 key购买 nike

我有一个包含大约 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 这么慢,有什么方法可以加快速度吗?任何帮助/指示将不胜感激,因为我需要这个工作。

注意相同的数据集插入到 Oracle、Postgres、SQLServer 等中没有问题。

最佳答案

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

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

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

这会加快速度。为了使其更快,我还必须禁用外键检查(我使用 JDBC 数据库 url 变量执行此操作)

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

关于java - DBUnit FlatXMLDataSet 对于 MySQL 容器化数据库插入速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com