我正在使用sqlite数据库。我创建了新的数据库,并在事务中执行了20K行的批量插入,然后提交了事务。
稍后我准备好删除查询
delete from Table
删除后,我打开了SQlite Db浏览器,检查表中的数据是否删除。表中的数据已删除。但是文件的大小仍然与执行删除查询之前的文件大小相同。
从逻辑上讲,正如我在DbBrowser中验证的那样,表中并没有元组。但是sqlite.db的大小大约是4MB。我该如何解决这个问题。
这个关于VACUUM的文档帮助了我的问题
VACUUM
命令重建数据库文件,将其重新打包到最小的磁盘空间中。
VACUUM命令的工作方式是将数据库的内容复制到临时数据库文件中,然后用临时文件的内容覆盖原始文件。