从 Java 插入 MySQL 时 CPU 使用率高

我正在尝试将数组写入 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();

    }


胡说叔叔
浏览 296回答 1
1回答

森栏

JDBC 调用是阻塞的(同步),因此其他线程在运行时没有机会运行,并且您在一个紧密的循环中执行了很多操作 - 所以我希望看到高 CPU 使用率。我认为你应该尝试三件事:调查 JDBC 批处理操作 -有关示例,请参阅JDBC Batch Insert OutOfMemoryError的答案。批次之间的产量()对于 MySQL,添加重写批处理语句=真到连接字符串,以大大提高批量更新的性能。使用 rewriteBatchedStatements=true查看MySQL 和 JDBC
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java