sqlite3产生日志文件后,打开数据库文件,数据库大小变为0

thammer 2017-09-07 10:35:22
我的程序不断的往数据库里面插入数据,通过杀死进程的方法模拟程序异常退出。偶尔会产生日志文件-journal,此时我通过命令sqlite3打开数据库文件,然后退出命令,发现数据库文件变为0。按照官方文档介绍,-journal文件是产生在事务未完成时,出现应用崩溃,系统崩溃或者机器断电。
http://www.sqlite.org/fileformat.html#the_rollback_journal
If a transaction is aborted due to an application crash, an operating system crash, or a hardware power failure or crash, then the database may be left in an inconsistent state. The next time SQLite attempts to open the database file, the presence of the rollback journal file will be detected and the journal will be automatically played back to restore the database to its state at the start of the incomplete transaction.

等到下次打开数据库文件,会自动探测到日志文件,并恢复未完成的事务。这与我测试到的现象不符合啊!我对数据库并没有任何删除操作,再说删除条目数据库不一定不会变小。
...全文
814 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
Folk是一个轻量、便携,同时又很强大且可高度定制的内容发布平台。Folk的目标是:让您可以轻松地与世界分享您的点滴。 Folk使用世界流行的javascript语言开发,因此可以同时运行于node和asp(非.net)。其中,node版本支持sqlite(推荐)和mysql两种数据库,而asp版本则同时支持access、mssql、mysql和sqlite四种数据库。这两个版本的核心代码完全相同,因此对应的主题和插件也可以做到同时兼容。 Folk的核心程序是轻量的,只提供最基础的文章和用户功能,让您能够非常快速地上手。同时,Folk也支持自定义主题,让您的网站更加个性化。而强大的插件系统,则可以让您在Folk的基础上,扩展出您所能想像的任何功能,甚至将她变成一个cms系统。 Folk默认使用markdown语法来撰写日志,但是Folk也支持通过插件来使用可视化的html编辑器,让您自由选择、随心书写! 安装步骤: 从install/目录下载对应版本的安装文件; 将解压后的install文件夹(包括install文件夹本身)上传至网站根目录; 对于asp版本,访问http://您的域名/install,然后根据提示进行安装; 对于node版本,在命令行执行node install,然后根据提示进行安装; 安装完毕,删除install目录。 对于asp版本,访问http://您的域名/control.asp进入管理后台 对于node版本,先node index.js启动网站服务,然后访问http://您的域名/control进入管理后台
sqltoy-orm是比hibernate+myBatis更加贴合项目的orm框架,具有hibernate增删改的便捷性同时也具有比myBatis更加灵活优雅的自定义sql查询功能。 sqltoy-orm支持以下数据库: oracle 从oracle11g到19c db2 9.5+,建议从10.5 开始 mysql 支持5.6、5.7、8.0 版本 postgresql 支持9.5 以及以上版本 sqlserver 支持2008到2019版本,建议使用2012或以上版本 sqlite sybase_iq 支持15.4以上版本,建议使用16版本 elasticsearch 只支持查询,版本支持5.7+版本,建议使用7.3以上版本 clickhouse mongodb (只支持查询) sqltoy-orm特性: 1、根本上杜绝了sql注入问题,sql支持写注释、sql文件动态更新检测,开发时sql变更会自动重载。 2、最直观的sql编写模式,当查询条件稍微复杂一点的时候就会体现价值,后期变更维护的时候尤为凸显。 3、极为强大的缓存翻译查询:巧妙的结合缓存减少查询语句表关联,极大简化sql和提升性能。 4、最强大的分页查询:很多人第一次了解到何为快速分页、分页优化这种极为巧妙的处理,还有在count语句上的极度优化。 5、跨数据库函数方言替换,如:isnull/ifnull/nvl、substr/substring 等不同数据库。 sqltoy-orm特点: 1、最优雅直观的sql编写模式 2、天然防止sql注入,执行过程 3、最强大的分页查询 4、最巧妙的缓存应用,将多表关联查询尽量变成单表 5、跨数据库 6、提供行列转换(数据旋转),避免写复杂的sql或存储过程,用算法来化解对sql的高要求,同时实现数据库无关(不管是mysql还是sqlserver) 7、提供分组汇总求平均算法(用算法代替sql避免跨数据库语法不一致) 8、分库分表 9、五种非数据库相关主键生成策略 10、elastic原生查询支持 11、elasticsearch-sql 插件模式sql模式支持     sqltoy-orm框架系统 更新日志: v4.18.22 1、在findEntity中EntityQuery可以设置fetchSize 2、在sqltoyContext中可以全局设置fetchSize,例如 spring.sqltoy.fetchSize=200 3、convertType 支持空集合返回空集合 4、针对一些特殊原因导致表名是数据库关键词的处理支持

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧