我正在嘗試將數(shù)組寫入 mysql 數(shù)據(jù)庫,但這似乎使 cpu 使用率達(dá)到 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貢獻(xiàn)1810條經(jīng)驗 獲得超5個贊
JDBC 調(diào)用是阻塞的(同步),因此其他線程在運(yùn)行時沒有機(jī)會運(yùn)行,并且您在一個緊密的循環(huán)中執(zhí)行了很多操作 - 所以我希望看到高 CPU 使用率。
我認(rèn)為你應(yīng)該嘗試三件事:
調(diào)查 JDBC 批處理操作 -有關(guān)示例,請參閱JDBC Batch Insert OutOfMemoryError的答案。
批次之間的產(chǎn)量()
對于 MySQL,添加
重寫批處理語句=真
到連接字符串,以大大提高批量更新的性能。使用 rewriteBatchedStatements=true查看MySQL 和 JDBC
添加回答
舉報
0/150
提交
取消