[转]android sqlite db-journal文件产生原因及说明

本文解释了SQLite数据库在Android环境下生成的.db-journal文件的作用及原理。.db-journal文件作为事务回滚机制的一部分,在事务开始时创建并在正常结束时删除。若程序异常终止,该文件会保留以便后续操作。此外,文章还介绍了Android中.db-journal文件的持久化特性及其背后的考虑。

今天在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是google了sqlite的官方文档。

发现该文件的用途如下:

该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生,在事务结束时删除;当程序发生崩溃或者系统断电时该文件将留在磁盘上,以便下次程序运行时进行事务回滚。

 

但是我创建数据库时将事务结束了,同时程序也没有崩溃,为什么还是会在磁盘上产生 .db-journal 文件呢?

深入研究,发现这是sqlite生成日志文件的不同模式造成的,在android采用的这种模式下,.db-journal 文件是永久的留在磁盘上不会被自动清除的,如果没有发生事务回滚那么.db-journal文件的大小为0,这样就避免了每次生成和删除 .db-journal 文件的开销。

到此,所有的疑惑解开了。

 

原文链接:http://blog.youkuaiyun.com/kaiwii/article/details/8609093

转载于:https://www.cnblogs.com/vanwoos/p/4472803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值