[英]High CPU usage on insert to MySQL from Java
我试图将数组写入mysql数据库,但这似乎使cpu达到100%使用率。
public void add_data(double[] data) throws SQLException {
PreparedStatement c = null;
String sql = "INSERT INTO lowpassdata(data) VALUES(?)";
c = this.conn.prepareStatement(sql);
for(int i=0; i<data.length; i++) {
c.setDouble(1, data[i]);
c.executeUpdate();
}
c.close();
}
JDBC调用是阻塞的(同步的),因此不要让其他线程在运行时运行,而且您在紧密的循环中做了很多工作-因此,我希望看到CPU使用率很高。
我认为您应该尝试3件事:
研究JDBC批处理操作-有关示例,请参见JDBC批处理插入OutOfMemoryError的答案。
批次之间的yield()
对于MySQL,添加
rewriteBatchedStatements =真
连接字符串,以大大提高批处理更新的性能。 请参阅带有rewriteBatchedStatements = true的MySQL和JDBC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.