在测试了data4.db数据库文件,删除3/5之后磁盘占用还是原来的并没有变小
方法1手动释放:
手动执行命令:VACUUM;
(执行非常的慢,我的文件比较大 等了个吧小时)
注意事项
使用了 DB Browser for SQLite
数据库管理软件,执行命令的时候内存报错软件卡死,之后使用了python执行的语句,文件目录明显可见产生了临时文件.db-journal
增大几十g 如果放在内存中肯定会爆,所以效率很低,在不影响使用的情况下 无需释放空间,这些未被占用的空间还是可以被继续写入数据的。
方法2 开启自动回收 PRAGMA auto_vacuum = 1;
只有在数据库中未建任何表时才能改变auto-vacuum标记。试图在已有表的情况下修改不会导致报错。
python代码
path=r'data4.db'
conn=sqlite3.connect(path)
cursor = conn.cursor()
cursor.execute("VACUUM;")