0
我遇到了sqlite3沒有刷新到磁盤的問題。我使用的代碼如下。我的總文件列表超過470k,程序傾向於使用幾千兆字節的內存。而程序運行時test.db是0字節,並且沒有使用日誌。當db.close()
正在運行時,它僅開始寫入磁盤。Nodjs Sqllite3沒有沖洗到磁盤
var fs = require('fs');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('test.db');
db.serialize(function() {
db.run("BEGIN;");
db.run("CREATE TABLE if not exists Files (name TEXT);");
db.run("COMMIT;");
var files = fs.readdirSync("./files/");
console.log("File list completed: " + files.length);
for (var i = 0; i < files.length; i++) {
db.run("INSERT INTO Files VALUES (?);",files[i]);
}
});
db.close();
我曾試圖刪除db.run("BEGIN;");
和db.run("COMMIT;");
,但它並不能幫助。
錯誤?
我在GitHub上
我已經嘗試的代碼,對我來說只是狼吞虎嚥的記憶。 –
你可以在每次插入後嘗試'commit'。 –
我試過了' var fs = require('fs'); var sqlite3 = require('sqlite3')。verbose(); var db = new sqlite3.Database('test.db'); var files = fs.readdirSync(「./ files /」); console.log(「File list completed:」+ files.length); (var i = 0; i