关闭SQLite3中的journal暂存档
相信很多使用SQLite3当做数据库的人都会一个现象,那就是当SQLite3有做写入的动作时,SQLite3会自动产生一个名为"数据库名称-journal"的暂存档。这是做什么用的呢?
答案是用来Rollback ,换句话说,就是当数据写入数据库有失败动作时,透过journal档案予以复原到未更动前(原始)数据,来确保数据完整与一致性。如果在每次写入的时间很长或频繁的进行数据库写入情况下,因系统(主机)电力不稳或突然断电时,那么下次重新启动,而journal档案若存在,则在开启SQLite数据库时,若发现有journal档案的存在,便会对数据库做Rollback 动作(还原)(详细内容:http://www.sqlite.org/atomiccommit.html)。但是有时候系统(主机)电力不稳或突然断电会导致journal档案损毁,因而造成SQLite数据库无法开启[问题1]。必须(手动)删除journal档案,SQLite数据库才能再度开启。
目前所知的方法有两种:
第一种方法:
在系统开机后第一次开启或每一次使用SQLite数据库时,先检查是否已经存在journal档案了,如果是则透过程序自动去删除该journal档案。
但是这有个问题,因为自动删除该journal档案,导致没有Rollback (还原)作用,无法保障数据完整与一致性。缺点二:有时候会发生程序无法自动删除(如:journal档案严重损毁),而导致上面的问题(无法开启数据库)[问题1]再度发生。
第二种方法:
使用"PRAGMA journal_mode = OFF"指令,这个指令能关闭自动产生journal暂存档动作。
但是如此一来当在写入数据库的过程,一旦发生意外状况,将会导致SQLite数据库无法保障数据完整与一致性。缺点二:journal_mode设定为OFF时,无法使用交易模式(Transaction)进行操作。
第二种方法的缺点二在如果需要使用交易模式(Transaction)进行操作时,可以透过"PRAGMA journal_mode = DELETE"指令,修改回原本的journal模式(journal_mode),就可以使用交易模式(Transaction)。
关闭SQLite3中的journal暂存档相关推荐
- 如何取消掉计算机更新图标,XP系统如何关闭右下角中的自动更新图标?
相信大家在使用XP系统中,都有遇到过电脑右下角总是弹跳出"您的计算机可能存在风险"这是怎么回事呢?其实这是因为是系统关闭了系统自动更新,那么遇到这种问题该怎么解决呢?其实我们只要把 ...
- 02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示
02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示 2017/8/18 13:53 版本:V1.0 开发板:SC5806(全志R58平台) SDK:android4.4.4 ...
- 一键设置mac显示选项_如何通过关闭浏览器中的一个选项卡将Mac上的电池寿命延长一倍...
一键设置mac显示选项 by Primož Cigler 通过PrimožCigler 如何通过关闭浏览器中的一个选项卡将Mac上的电池寿命延长一倍 (How I doubled the batter ...
- el table怎么获取最后一行_element中el-table单行暂无数据和整体暂无数据的默认修改...
element中el-table单行暂无数据和整体暂无数据的默认修改 最近在写element中的el-table表格时,遇到返回列表没有数据的情况 1.整个表格无数据 需要展示UI给的一张图片,奈何e ...
- Python-Snap7与 1212 PLC通信并保存到sqlite3中
Python-Snap7与 1212 PLC通信并保存到sqlite3中 前言 配置 硬件 软件 软件配置过程 树莓派系统安装 树莓派固定IP设置 python更新i pip 安装 snap7安装 s ...
- 如何关闭 Linux 中的嘟嘟声
在 Debian/Ubuntu Linux 默认情况下,PC 喇叭发出的嘟嘟声音警告(System Beep)应用的场合非常普遍.但在 shell 的 tab 补全.vi 的光标移动行首行尾等等情况下 ...
- 软件测试面试题:关闭浏览器中quit和close的区别
关闭浏览器中quit和close的区别 简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session. ...
- 如何从iCloud中下载元气骑士存档
如何从iCloud中下载元气骑士存档 手机登陆iCloud 进入后输入你的iCloud账号和密码 输入之后点击下一步,如果提示双重认证点,跳过即可 打开Game Center 点击设置 点击搜索 输入 ...
- LaTeX 写作的两个辅助工具:统计中文字数和关闭Acrobat中的PDF文档
LaTeX 没有像 Word 那样自带中文字数统计功能,加上 LaTeX 源文件中有许多控制字符,不能通过文件大小获知其中有多少汉字.为此我用C写了一个统计中文字数的小工具,名为 cwc ,即 chi ...
最新文章
- 图片管理之保存图片数据
- Qt / 查找可执行程序的依赖库
- 教你增加网站反向链接的7大法门和12奇招
- Xshell 连接本地的Linux 系统,提示:Could not connect to '192.168.182.128' (port 23): Connection failed
- HTML试题及答案(总结)
- 计算机集数控技术文献,数控技术
- mybatis 详解(三)------入门实例(基于注解)
- 【白皮书分享】2021内容营销白皮书.pdf(附下载链接)
- clr错误 8004005程序将立即终止_微软公开发布更多Surface驱动程序 固件支持终止日期...
- 推荐《喵星人行为心理学》
- 《python网络爬虫和信息提取》:全球电影票房排行榜(附更改后的代码)
- android自定义秒表(精确到0.1秒,带计次功能)
- 7-7 六度空间 (30分)
- 洛谷P5960 【模板】差分约束算法
- piaget读法_读音教学 | 这些手表品牌原来是这么念的!
- 50行Python搞定京东商品抢购
- 谷歌浏览器自带网页截图快捷键
- 容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站(体验有礼)
- 英语学习的几个实用网站
- Linux下shell自动输入密码,shell脚本通过expect脚本实现自动输入密码
热门文章
- ie11不兼容 html编辑器,ie11兼容性视图护驾浏览网页
- asp判断是否移动端_asp判断用户端是电脑访问还是移动设备方法
- 19 | 散列表(中):如何打造一个工业级水平的散列表?
- html下拉列表初始值不显示,javascript – 使用innerhtml显示下拉列表文本而不是值...
- linux php 上级目录,Linux目录架构详解_php
- 面试题:移动数组的元素
- 【C++深度剖析教程3】C++中类的静态成员变量
- selenium之截图
- 基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)
- [Leetcode]@python 90. Subsets II.py