0
我正在嘗試讀取,拆分爲有意義的變量,然後將4Gb文本文件的信息插入到數據庫中。樣品1.2Mb的讀數(需要時打印)需要幾百毫秒,但將信息插入數據庫需要幾秒鐘(30+)。我正在使用兩個數據庫(該文件包含兩種不同類型的記錄)。我的代碼看起來像這樣:使用JAVA緩慢插入SQL
try {
reader = new BufferedReader(new FileReader(filename));
openConnection();
ch = reader.read();
while (ch != -1) {
if ((char)ch == '1') {
sql = parseCliente();
st.executeUpdate(sql);
}
else if ((char)ch == '2') {
sql = parseRegistro();
st.executeUpdate(sql);
}
else if (ch == -1) break;
else {
ch = reader.read();
}
}
closeConnection();
}
catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
我的代碼實際上工作,但我需要更快的方法或操作將需要幾天!
檢查「批處理語句」的文檔,請參閱https://stackoverflow.com/questions/3784197/efficient-way-to-do-batch-inserts-with-jdbc例如 – 2017-07-19 18:24:03
您可以使用事務嗎?你使用自動提交嗎? –
很難說不知道你的數據庫有什麼 - 它是一個大型的數據庫,是否有唯一的和外鍵約束或索引?這些都可以影響插入和更新的速度。 – Jesper