3

どういうわけか、私の MySQL Inserts は本当に遅いです。「Batch-Inserts」を使用する場合でも。約 50 の挿入には最大 2000 ミリ秒かかります。これは正常ですか、それともコードを改善する方法はありますか?

            String sql = "INSERT INTO wlw ( wlw_level, wlw_name, wlw_url, wlw_processing, wlw_finished, wlw_source )"
                        + "VALUES(?, ?, ?, ?, ?, ?)";
            PreparedStatement preparedStatement = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

            for(QueryStore qs : QueryStore) {
                preparedStatement.setInt(1, qs.level);
                preparedStatement.setString(2, qs.anchor);
                preparedStatement.setString(3, qs.url);
                preparedStatement.setInt(4, qs.processing);
                preparedStatement.setInt(5, qs.finished);
                preparedStatement.setLong(6, qs.id);
                preparedStatement.addBatch();
                System.out.println("Adding URL: " + qs.url);
            }
            System.out.println("Start saving ...");
            long then = System.currentTimeMillis(); 
            preparedStatement.executeBatch();
            long now = then - System.currentTimeMillis();
            System.out.println("SAVING END - Took me " + now + "ms");

提案をありがとう!!

4

1 に答える 1

5

rewriteBatchedStatements=true接続パラメーターに追加してみてください。

于 2013-04-22T20:45:39.403 に答える