我正在尝试将数组写入 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(); }
1 回答
森栏
TA贡献1810条经验 获得超5个赞
JDBC 调用是阻塞的(同步),因此其他线程在运行时没有机会运行,并且您在一个紧密的循环中执行了很多操作 - 所以我希望看到高 CPU 使用率。
我认为你应该尝试三件事:
调查 JDBC 批处理操作 -有关示例,请参阅JDBC Batch Insert OutOfMemoryError的答案。
批次之间的产量()
对于 MySQL,添加
重写批处理语句=真
到连接字符串,以大大提高批量更新的性能。使用 rewriteBatchedStatements=true查看MySQL 和 JDBC
添加回答
举报
0/150
提交
取消