SQLite删除数据占用空间不变

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

解决方法:两种

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

sqlite> vacuum;

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

二,在数据库文件建成中,将auto_vacuum设置成“1”。

您可以选择一种方式赞助本站