Высокая загрузка ЦП при вставке в MySQL из Java - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь записать массив в базу данных mysql, однако, похоже, это приводит к 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 Ответ

0 голосов
/ 22 октября 2018

Вызовы JDBC блокируются (синхронно), поэтому не дают возможности другим потокам работать во время их работы, и вы выполняете многие из них в тесном цикле - поэтому я ожидаю увидеть высокую загрузку ЦП.

Я думаю, вам следует попробовать 3 вещи:

rewriteBatchedStatements = true

на строку подключения, чтобы значительно повысить производительность ваших пакетных обновлений.См. MySQL и JDBC с rewriteBatchedStatements = true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...