java - 从 Java 插入 MySQL 时 CPU 使用率较高

标签 java mysql jdbc

我正在尝试将数组写入 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 使用率。

我认为你应该尝试三件事:

rewriteBatchedStatements=true

连接字符串可大大提高批量更新的性能。请参阅MySQL and JDBC with rewriteBatchedStatements=true

关于java - 从 Java 插入 MySQL 时 CPU 使用率较高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927778/

相关文章:

java - 是否有非商业 Hibernate 查询检查器?

java - 在学校和家里使用不同的 Java JDK 版本使用 NetBeans 进行编程

php - 是否可以为 mysql 中的表设置到期日期/时间?

sqlite - 如何使用 SQLite JDBC 传递文本或字符串?

java - 如何使用java在oracle中创建用户定义表(表名在字符串中)

java - 如何将一种方法的executeQuery()的结果集用于不同的方法

java - Eclipse IDE 设置仅类的方法在包资源管理器中可见

java - Maven Artifact jar 名称与版本不同

mysql - 显示所有表格。描述一样的功能

mysql - MySQL 中何时使用单引号、双引号和反引号