Python 如何将具有更多条目的SQLite数据库压缩为更小的文件大小?

Python 如何将具有更多条目的SQLite数据库压缩为更小的文件大小?,python,python-2.7,sqlite,zip,Python,Python 2.7,Sqlite,Zip,首先是一些背景。目前我正在运行一些python脚本,这些脚本正在从各种来源收集一些数据。因为我希望获得大量数据,所以我有点担心我的机器处理大文件的能力,所以我会跟踪数据库的发展。在当前阶段,应该没有问题,但我注意到我的主数据库(sqlite3)的大小没有任何变化。经过一些研究,我发现如果数据库在()之前有更多的条目,那么文件大小可能会保持不变,这很可能发生在脚本的测试阶段 我每天午夜备份我的数据库,注意到压缩的zip文件的大小每天都在变小。我正在使用shell脚本进行备份: zip -r /ba

首先是一些背景。目前我正在运行一些python脚本,这些脚本正在从各种来源收集一些数据。因为我希望获得大量数据,所以我有点担心我的机器处理大文件的能力,所以我会跟踪数据库的发展。在当前阶段,应该没有问题,但我注意到我的主数据库(sqlite3)的大小没有任何变化。经过一些研究,我发现如果数据库在()之前有更多的条目,那么文件大小可能会保持不变,这很可能发生在脚本的测试阶段

我每天午夜备份我的数据库,注意到压缩的zip文件的大小每天都在变小。我正在使用shell脚本进行备份:

zip -r /backup/$(date +\%Y-\%m-\%d).zip /data
目录
/data
包含一些其他小文件,这些文件不应该在任何压缩的zip文件中修改


为什么压缩后的ZIP文件越来越小?

如果添加数据时数据库文件没有增长,则意味着SQLite正在重用可用空间:包含后来删除的行的数据库页面。这些页面不会被删除,只会标记为免费。SQLite不关心内容(并最终将覆盖内容),但zip仍然会归档所有内容

添加的数据可能比它们覆盖的未使用数据压缩得更好