SQLite删除数据占用空间不变的解决方法

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

猜你在找的Sqlite相关文章