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