首先,是一些上下文。目前,我正在运行一些python脚本,这些脚本从各种来源收集一些数据。由于我希望获得大量数据,因此我担心我的机器可以很好地处理大文件,因此我一直在跟踪数据库的发展方式。在当前阶段应该没问题,但是我注意到我的主数据库(sqlite3)的大小完全没有变化。经过一些研究,我发现如果数据库之前有更多条目(Source),则文件大小可能保持不变,这很可能发生在脚本的测试阶段。
我每天午夜都在备份数据库,并注意到压缩的zip文件的大小每天都在变小。我正在使用Shell脚本进行备份:
zip -r /backup/$(date +\%Y-\%m-\%d).zip /data
目录/data
包含其他一些小文件,不应在任何压缩的zip文件中对其进行修改。
为什么压缩的ZIP文件的大小越来越小?
答案 0 :(得分:2)
如果添加数据时数据库文件没有增长,则表示SQLite正在重用可用空间:包含后来被删除的行的数据库页面。这些页面不会被删除,只会标记为空闲。 SQLite并不关心内容(最终会覆盖它),但是zip仍会归档所有内容。
添加的数据有可能比覆盖的未使用数据得到更好的压缩。