首先是一些背景信息。目前我正在运行一些 python 脚本,它们从各种来源收集一些数据。由于我希望获得大量数据,因此我有点担心我的机器处理大文件的能力如何,因此我跟踪数据库的演变情况。在当前阶段应该没问题,但我注意到我的主数据库(sqlite3)的大小根本没有改变。经过一些研究,我发现如果数据库之前有更多条目( Source ),文件大小可能会保持不变,这很可能发生在我的脚本的测试阶段。
我每天午夜备份数据库,发现压缩后的 zip 文件的大小每天都在变小。我使用 shell 脚本进行备份:
zip -r /backup/$(date +\%Y-\%m-\%d).zip /data
目录/data
包含一些其他小文件,这些文件不应在任何压缩的zip文件中进行修改。
为什么压缩后的ZIP文件大小越来越小?
最佳答案
如果添加数据时数据库文件没有增长,则意味着 SQLite 正在重用可用空间:包含后来被删除的行的数据库页面。这些页面不会被删除,只是标记为空闲。 SQLite 不关心内容(并且最终会覆盖它),但 zip 仍然存档所有内容。
添加的数据可能比它们覆盖的未使用的数据压缩得更好。
关于python - 如何将具有更多条目的 SQLite 数据库压缩为更小的文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56931185/