JDBC 批量插入性能

编程入门 行业动态 更新时间:2024-10-26 10:39:14
本文介绍了JDBC 批量插入性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I need to insert a couple hundreds of millions of records into the mysql db. I'm batch inserting it 1 million at a time. Please see my code below. It seems to be slow. Is there any way to optimize it?

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 时遇到了类似的性能问题,并通过设置 useServerPrepStmts 和 rewriteBatchedStatements 属性解决了它在连接网址中.

I had a similar performance issue with mysql and solved it by setting the useServerPrepStmts and the rewriteBatchedStatements properties in the connection url.

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

更多推荐

JDBC 批量插入性能

本文发布于:2023-10-26 10:03:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1529818.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:批量   性能   JDBC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!