从 table 逻辑上删除数据,但 sqlite 数据库文件大小仍然相同
Data deleting logically from table but still sqlite db file size same
我正在使用 sqlite 数据库。
我创建了新的数据库,并在事务中执行了 20K 行的批量插入,然后提交了事务。
后来我执行了删除查询
delete from Table
删除后,我打开SQlite Db Browser查看table中的数据有没有被删除。 table 中的数据已删除。但文件的大小仍然与执行删除查询之前的文件大小相同。
逻辑上 table 中没有元组,正如我在 Db 浏览器中验证的那样。
但是 sqlite.db 的大小大约是 4MB。
我该如何解决这个问题。
VACUUM 上的这个文档解决了我的问题
VACUUM
命令重建数据库文件,将其重新打包到最小数量的磁盘space。
VACUUM 命令的工作原理是将数据库的内容复制到临时数据库文件中,然后用临时文件的内容覆盖原始文件。
我正在使用 sqlite 数据库。 我创建了新的数据库,并在事务中执行了 20K 行的批量插入,然后提交了事务。
后来我执行了删除查询
delete from Table
删除后,我打开SQlite Db Browser查看table中的数据有没有被删除。 table 中的数据已删除。但文件的大小仍然与执行删除查询之前的文件大小相同。
逻辑上 table 中没有元组,正如我在 Db 浏览器中验证的那样。 但是 sqlite.db 的大小大约是 4MB。 我该如何解决这个问题。
VACUUM 上的这个文档解决了我的问题
VACUUM
命令重建数据库文件,将其重新打包到最小数量的磁盘space。
VACUUM 命令的工作原理是将数据库的内容复制到临时数据库文件中,然后用临时文件的内容覆盖原始文件。