gpt4 book ai didi

mysql - JDBC 批量插入性能

转载 作者:行者123 更新时间:2023-11-29 03:18:47 27 4
gpt4 key购买 nike

我需要将几亿条记录插入到 mysql 数据库中。我一次批量插入 100 万个。请在下面查看我的代码。它似乎很慢。有什么办法可以优化吗?

try {
// Disable auto-commit
connection.setAutoCommit(false);

// Create a prepared statement
String sql = "INSERT INTO mytable (xxx), VALUES(?)";
PreparedStatement pstmt = connection.prepareStatement(sql);

Object[] vals=set.toArray();
for (int i=0; i<vals.length; i++) {
pstmt.setString(1, vals[i].toString());
pstmt.addBatch();
}

// Execute the batch
int [] updateCounts = pstmt.executeBatch();
System.out.append("inserted "+updateCounts.length);

最佳答案

我在使用 mysql 时遇到了类似的性能问题,并通过在连接 url 中设置 useServerPrepStmtsrewriteBatchedStatements 属性解决了这个问题。

Connection c = DriverManager.getConnection("jdbc:mysql://host:3306/db?useServerPrepStmts=false&rewriteBatchedStatements=true", "username", "password");

关于mysql - JDBC 批量插入性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49129273/

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