解决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