当前位置: 代码迷 >> 其他数据库 >> (!)清空sqlite数据库中所有表后,磁盘空间占用仍然很大,求解?
  详细解决方案

(!)清空sqlite数据库中所有表后,磁盘空间占用仍然很大,求解?

热度:6668   发布时间:2013-02-26 00:00:00.0
(求助!)清空sqlite数据库中所有表后,磁盘空间占用仍然很大,求解???
作了一个数据采集程序,使用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:修改属性一定要在建立表之前,之后是没有效果的。
  相关解决方案