数据库
首页 > 数据库> > sqlite3 删除大量数据后,db文件大小未变小问题

sqlite3 删除大量数据后,db文件大小未变小问题

作者:互联网

 

核心方案: VACUUM

VACUUM 命令通过复制主数据库中的内容到一个临时数据库文件,然后清空主数据库,并从副本中重新载入原始的数据库文件。这消除了空闲页,把表中的数据排列为连续的,另外会清理数据库文件结构。

如果表中没有明确的整型主键(INTEGER PRIMARY KEY),VACUUM 命令可能会改变表中条目的行 ID(ROWID)。VACUUM 命令只适用于主数据库,附加的数据库文件是不可能使用 VACUUM 命令。

如果有一个活动的事务,VACUUM 命令就会失败。VACUUM 命令是一个用于内存数据库的任何操作。由于 VACUUM 命令从头开始重新创建数据库文件,所以 VACUUM 也可以用于修改许多数据库特定的配置参数。

 

DEMO:

1.已存在一个tetete.db库,大小为32k

创建一个表后,大小为40k

 

 

 

 

2.删除这个表,db文件大小仍为40k

 

 

 

 

 

 

3.输入VACUUM指令,db文件大小更新

 

 

 

 

 

 

 

支持

欢迎关注公众号  谁吃薄荷糖,主要记录日常中觉得有意思的事情以及分享开发实践,保持深度和专注度,喜欢的点击右下角的再看哦。

https://www.icode9.com/i/ll/?i=20200618112613122.png

 

标签:文件大小,文件,数据库,db,命令,VACUUM,sqlite3
来源: https://blog.csdn.net/zcc1229936385/article/details/106872588