202108011458 - 为什么jdbc提交千万级数据很慢?source sql文件很快?

<!--mysql驱动包-->  
<dependency>  
 <groupId>mysql</groupId>  
 <artifactId>mysql-connector-java</artifactId>  
 <version>5.1.47</version>  
</dependency>


System.out.println(new Date());  
  
Class.forName("com.mysql.jdbc.Driver");  
String url = "jdbc:mysql://101.71.102.249:3306/cul?user=cul&password=Bonc@123&useSSL=false";  
Connection conn = DriverManager.getConnection(url);  
String sql = "insert into  dw_user_d values(?, ?, ?, ?, ?)";  
PreparedStatement ps = conn.prepareStatement(sql);  
for (int j = 0; j < 1000; j++) {  
    for (int i = 0; i < 10000; i++) {  
        ps.setInt(1, i + 1);  
 ps.setString(2, "aaaaa");  
 ps.setInt(3, 33);  
 ps.setString(4, "男");  
 ps.setString(5, "杭州");  
 ps.addBatch();  
 }  
    ps.executeBatch();  
 System.out.println(j);  
}  
System.out.println("1");  
if (null != conn)conn.close();  
System.out.println(new Date());


看了看ps的源码,是将sql在服务器预编译,发送参数的set集合;

# 查看自动提交是否开启
show variables like 'autocommit'\G;

# 关闭自动提交

jdbc源码看不到?

executeBatch太慢
https://blog.csdn.net/lgh1117/article/details/80212924

posted @ 2025-03-19 22:09  钱塘江畔  阅读(8)  评论(0)    收藏  举报