标签: c memory-management sqlite transactions
在嵌入式系统上的C(内存存在问题)中,尝试优化性能,多个插入组合成更大的事务。
直观地说,SQLITE必须将未发送的事务保存在有限内存中的某个缓存中。
答案 0 :(得分:2)
您所做的任何更改都将写入数据库文件。为了支持回滚,已更改的数据库页面的旧内容将保存在日志文件中。 提交事务时,只删除日志文件;当您回滚事务时,将回写这些页面。
因此,只要您有足够的磁盘空间,就不会限制事务中的数据大小。
(缓存可以帮助避免一些写入,但它透明地工作,不会影响代码的语义。)