前端之家收集整理的这篇文章主要介绍了
SQLite删除数据占用空间不变的解决方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这几天使用
sqlite发现个问题,原空
数据库只有10K,往
数据库写1M的数据,写完数据之后,
数据库房有将近1034K左右,这时再将数据清空,发现
数据库的大小依然没变,还是1034,我就奇了怪了,朋友告诉我应该是VACUUM的原因,网上了查了下,网上的解释如下: 当你从
sqlite
删除数据后,未使用的磁盘空间被
添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。 找到原因就得知,在建表之前需要设置VACUUM,VACUUM的默认值是0,可以建表之后
查询VACUUM的值,
查询命令,PRAGMA auto_vacuum,VACUUM在建表之后是不能
修改的,所以必须得在建表之前设置它的值,执行命令PRAGMA auto_vacuum = 1;
原文链接:https://www.f2er.com/sqlite/201016.html