SQLite .journal 文件

在之前插入大量数据测试的时候,发现在数据库文件同级目录下会产生一个同名.journal的文件,并且不是一直会存在,而是生成一会就会自动删除,然后继续生成继续删除,直到数据插入完成。

初步猜测,应该是类似 redis 的 rdb持久化文件一样,防止服务宕机或者插入中断丢失数据。

带着此疑惑,翻阅下SQLite官方文档,如下:

File Locking And Concurrency In SQLite Version 3

翻译过来大概就是指: 当进程想要更改数据库文件时,它首先记录原始未更改的数据库内容 在_回滚日志_中。回滚日志是普通的始终位于的磁盘文件在与数据库文件相同的目录或文件夹中,并具有与数据库文件同名,但添加了 -journal 后缀。回滚日志还记录初始数据库的大小,以便在数据库文件增长时可以截断它 回滚时恢复到其原始大小。

简单理解当SQLite数据库进行事务处理时,.journal文件用于存储修改前的数据页(page)的副本。如果在事务提交之前发生崩溃或错误(如宕机),SQLite可以使用这些存储的副本来回滚(roll back)事务,从而保持数据库的一致性和完整性。

这样看来,与我一开始的猜测出入不大,.journal文件还是蛮重要的,是一个重要角色。


相关推荐
yexuhgu1 天前
如何为禁用按钮点击添加提示文案
jvm·数据库·python
duke8692672141 天前
JavaScript数组扁平化flat与flatMap处理嵌套数据
jvm·数据库·python
夏沫琅琊1 天前
Mac 上用 Homebrew 安装 DB Browser for SQLite 时,被 Homebrew 自动更新卡住了
数据库·macos·sqlite
m0_740796361 天前
mysql如何通过脚本自动化创建用户_使用shell配合mysql命令
jvm·数据库·python
会编程的土豆1 天前
Gin 框架第一课:从 0 搞懂 Gin 最基础的路由
数据库·sql·gin·goland
雨浓YN1 天前
GKTGD 工业监控系统-02MySQL 数据库技术文档(类库:NET8_SQLData)
数据库·wpf
dFObBIMmai1 天前
JavaScript中对象生命周期与垃圾回收的引用关系
jvm·数据库·python
2401_824697661 天前
Go语言怎么格式化时间_Go语言time.Format教程【详解】
jvm·数据库·python
2303_821287381 天前
HTML函数在低背光键盘上编写困难吗_输入设备舒适度说明【介绍】
jvm·数据库·python
爱喝水的鱼丶1 天前
SAP-ABAP:ABAP Development Tools(ADT)安装配置学习分享教程(四篇连载)第四篇:ADT连接故障排查与环境迁移教程
运维·开发语言·数据库·学习·sap·abap