rustsqlite删除成功但是数据没变

rustsqlite删除成功但是数据没变,第1张

原因是:

sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢失,但也不向 *** 作系统返回磁盘空间,这就导致删除数据乃至清空整个数据库后,数据文件大小还是没有任何变化,还是很大

一,在数据删除后,手动执行VACUUM命令,执行方式很简单

sqlite> vacuum;

VACUUM命令会清空“空闲列表”,把数据库尺寸压缩到最小。但是要耗费一些时间。

FQA里面说,在Linux的环境下,大约05秒/M。并且要使用两倍于数据库文件的空间。

我憎恨此FQA,他只说系统环境,不说机器硬件环境。我在测试手机上执行用了将近13秒时间压缩了将近3M的空间。至于它所占用的另一部分空间,是生成了一个db-journal后缀名的临时文件。(这个问题对我现在来说是无所谓的。)

压缩一下就好了。

或者直接把后缀改成cab,使用的时候使用ACCESS打开。

ACCESS软件包括很多多余的后台处理代码,每一个视图生成过程都会有很多未清理得痕迹,你可以做个实验,拖放一个按钮到窗体上,查看他的代码,你会发现他已经再后台生成了一堆代码。压缩得目的,就是处理这些冗余分配空间。

以上就是关于rustsqlite删除成功但是数据没变全部的内容,包括:rustsqlite删除成功但是数据没变、ACCESS数据库变的非常大,如何瘦身、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10097993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存