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

标签 python python-2.7 sqlite zip

首先是一些背景信息。目前我正在运行一些 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/

相关文章:

python - 如何通过 gremlin-python 获取所有边、相关顶点以及相应的 id、标签和属性?

python - 嵌套 Python 上下文管理器

python - 从 numpy ndarray 中提取字典项

python - IOError : [Errno 13]

python - 如何比较 strftime 值

iphone - 如何在iPhone中以编程方式插入和查看数据到sqlite数据库

sqlite - Windows Phone 8的SQLitePlugin Phonegap崩溃

sqlite - Symfony CMF 如何保存到数据库中?

python - python 3.4.3 中 urllib.httperror 的语法错误

Python 多处理程序未运行到最后