您的位置:首页 > 数据库

关于sqlite3删除表内数据后,数据库大小仍然不 变的问题

2018-01-05 20:10 330 查看
    最近由于项目的需要,用到了sqlite3数据库相关的操作。因为之前用的是QT中自带的,不是用C语言来操作,不过总的来说相差不大。之前是在 操作数据库过程中,会导致内存不断的增加。后来是发现操作的过程中很多内存没有释放。但是最近又有新的问题是,在我删除表中的数据后,发现数据库文件的大小仍然不变,而且下次打开数据库后,发现仍然占用着系统的内存。找了很多方法,终于让我找到了根本原因。原来是因为从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。需要手动执行VACUUM命令进行删除。

    记住,如果在做其他操作或者有事务操作的时候,VACUUM命令会执行失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐