解决Sqlite数据库,数据删除或者更新后,占用空间不会减少的问题

占用空间不会减少的原因

sqlite数据库库文件在使用过后,随着数据的增多,文件大小也会随之变大。但是在把所有表中数据删除以后发现sqlite数据库文件大小没有变化,还是占用原来大小的空间。

造成这种情况的原因是:sqlite在之前使用的时候,随着数据的插入,会分配磁盘空间来供使用,在删除数据以后,未使用的磁盘空间会被添加到一个内在的“空闲列表”中用于存储下次插入的数据,磁盘空间不会随着数据的删除而释放给操作系统。

解决方案

VACUUM命令

假如需要进行sqlite文件磁盘空间的释放,可以在命令界面,执行 VACUUM 命令。

VACUUM命令会清空“空闲列表”,把数据库尺寸压缩到最小。

具体执行,可参考 https://blog.csdn.net/HardWorkingAnt/article/details/70667104

SQL工具数据操作

以上,是通过sql命令来实现的。其实有一种简单方案,就是直接使用sqlite工具将数据导出后再导入成新的db文件。

1. Sqlite安装包 链接:https://pan.baidu.com/s/1_qLjE4bkccpySsf_PG95ew 密码:uvij

2. 原数据库大小为26M

3. 导出为sql文件

4. 将数据再次导入,保存为新的数据库文件

4. 数据库大小变为2.6M

 

posted @ 2018-08-28 20:43  唐宋元明清2188  阅读(3172)  评论(0)    收藏  举报