原文地址:
http://blog.csdn.net/chthq/article/details/7834526
今天在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边
生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是
google了sqlite的官方文档,发现该文件的用途如下:
该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生,
在事务结束时删除;当程序发生崩溃或者系统断电时该文件将留在磁盘上,以便下次程序运行
时进行事务回滚。
但是我创建数据库时将事务结束了,同时程序也没有崩溃,为什么还是会在磁盘上产生
.db-journal文件呢?
深入研究,发现这是sqlite生成日志文件的不同模式造成的,在android采用的这种模式下,
.db-journal文件是永久的留在磁盘上不会被自动清除的,如果没有发生事务回滚那么.db-journal
文件的大小为0,这样就避免了每次生成和删除.db-journal文件的开销。
到此,所有的疑惑解开了。
分享到:
相关推荐
在Android开发中,SQLite数据库是应用中存储数据的常用选择,尤其对于小规模的数据存储,它的性能和灵活性都相当出色。然而,随着数据量的增长,批量插入数据的效率变得至关重要。"android sqlite 批量插入数据优化...
在Android系统中,数据库是应用程序存储结构化数据的主要方式,特别是在SQLite这种轻量级的数据库管理系统上。然而,从Android 9.0 (Pie)开始,Google引入了一些更改,其中包括默认启用Write-Ahead Logging(WAL)...
name是 Android 文件系统上 SQLite DB 的名称。 context-lookup.class是特性的实现。 包含一个简单的实现(由单元测试使用)。 示例application.conf : akka { persistence { journal.plugin = "akka-...
这可能包括数据库文件(通常是.db扩展名)、日志文件(.journal或Wal扩展名)以及可能出现的其他辅助文件。 SQLite 是一种开源、轻量级的关系型数据库管理系统,广泛应用于移动设备、嵌入式系统以及桌面应用程序中...
在实际操作中,当数据库被访问时,Android系统会在指定目录下生成数据库文件(如person.db)以及一个journal文件(如person.db-journal)。journal文件用于SQLite的事务回滚,通常在无异常或无需回滚的情况下大小为0...
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。在这个实例中,我们看到一个功能,允许用户将不熟悉的单词添加到...
本文将深入探讨Android中的SQLite数据库操作,包括基本概念、数据库创建、表的建立、数据的增删改查(CRUD)以及一些实用技巧。 首先,SQLite是一个轻量级的、嵌入式的、关系型数据库,它不需要单独的服务器进程,...