为了账号安全,请及时绑定邮箱和手机立即绑定

SQLite插入很慢?

SQLite插入很慢?

慕的地8271018 2019-11-30 10:27:51
我最近阅读了有关SQLite的文章,并认为可以尝试一下。当我插入一条记录时,它执行得很好。但是,当我插入一百时,它需要五秒钟,并且随着记录数的增加,时间也会增加。有什么事吗 我正在使用SQLite包装器(system.data.SQlite):dbcon = new SQLiteConnection(connectionString);dbcon.Open();//---INSIDE LOOP SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon); nRowUpdatedCount = sqlComm.ExecuteNonQuery(); //---END LOOPdbcon.close();
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

我到处都读到创建事务是降低SQLite写入速度的解决方案,但是重写代码并将所有SQLite写入包装在事务中可能很长且很痛苦。


我发现了一种更简单,安全且非常有效的方法:我启用了(默认情况下禁用)SQLite 3.7.0优化:预写日志(WAL)。该文档说它可以在所有的Unix(即Linux和OSX)和Windows系统中使用。


怎么样 ?初始化SQLite连接后,只需运行以下命令:


PRAGMA journal_mode = WAL

PRAGMA synchronous = NORMAL

我的代码现在运行速度提高了约600%:我的测试套件现在运行了38秒,而不是4分钟:)


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 597 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信