这是交易:
conn
创建连接DriverManager
conn.autoCommit(false);
PreparedStatement pStat = conn.prepareStatement(insert_string_with_parameter);
pStat.addBatch();
批处理addBatch()
10000次),我叫pStat.executeBatch();
pStat.clearBatch()
即使以上听起来对我来说都很好,但这还是慢!!! 。
我平均每秒只有35条记录(总共只有8列,只有技术上自动递增的主键,还有一些不是null约束)。我计算将需要一周的时间来插入我所有的2000万行...
我做错什么了吗?
每个批处理周期应尝试添加几行? 10000太多了吗?
最佳答案
如果碰巧在版本5.1.7左右的MySQL使用带有JDBC驱动程序的MySQL,则可能会受到a bug that slows down batch inserts的影响。更新到5.1.10 or later应该注意这一点。
关于java - JDBC批处理插入速度很慢!我的意思是,真的很慢吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7265136/