sqlite插入大量数据操作
sqlite没有显示定义事务时,每条语句执行的时候,都会隐形的创建一个事务,保证数据库操作的原子性,这时如果进行大量的操作比如:插入,则速度非常缓慢
可自定义事务的BEGIN与COMMIT,一次性提交所有的插入操作:
sqlite3.run('BEGIN TRANSACTION');
let stmt = sqlite3.prepare('INSERT INTO table (field1, field2) VALUES (?, ?)');
for(let i = 0; i < length; i++) {
stmt.run([value1, value2]) ;
}
stmt.finalize();
sqlite3.run('COMMIT TRANSACTION');
保证与数据库最少的交互
另外遇到问题:当一个事务TRANSACTION执行时,不允许创建另一TRANSACTION,也就是不能并发创建,待解决

浙公网安备 33010602011771号