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

浙公网安备 33010602011771号