作了一个数据采集程序,使用sqlite作为数据库,运行一段时间后,保存数据5G,然后用数据库管理工具清空所有表之后,发现该数据库文件仍然占用磁盘空间5G。。。。。
请教一下这是什么现象????多谢了
------解决方案--------------------------------------------------------
SQLITE当你删除记录或者表时不会自动释放文件所占用的空间,需要执行 VACUUM
------解决方案--------------------------------------------------------
sqlite3 VACUUM
more info: sqlite.org
终端进入数据库
#sqlite3 test.db
在数据库里面查看该数据库是否会自动压缩空间
#sqlite>PRAGMA auto_vacuum;
手动压缩
#sqlite>VACUUM;
在建立表之前,可以设置属性通过以下command
#sqlite>PRAGMA auto_vacuum = 0 | 1; (0 默认属性,关闭。1打开自动压缩)
ps:修改属性一定要在建立表之前,之后是没有效果的。