gpt4 book ai didi

python - ZODB不释放硬盘空间

转载 作者:行者123 更新时间:2023-12-01 04:46:03 24 4
gpt4 key购买 nike

我通过创建一个巨大的对象来测试ZODB,提交后,它给出了警告。接下来,我继续从根目录删除对象,提交。 .fs 文件的空间仍然是 1GB。然后我杀掉了 REPL。我重新打开 python,建立连接,但现在我似乎无法删除这个 1 GB 文件(除了尝试从磁盘本身删除它)。

代码如下:

storage = FileStorage('Data.fs')
db = DB(storage)
connection = db.open()
root = connection.root()

随后创建了一些巨大的对象,一开始我确实这样做了

root['bigObj'] = 'small_str',
transaction.commit()

尝试覆盖。之后我删除了键/值。

我缺少什么部分?

最佳答案

ZODB 是仅附加数据库。 ZODB 绝不会回收或覆盖旧信息,除非明确告知这样做。这意味着您拥有无限的撤消历史记录,直到需要时创建数据库为止。

要回收磁盘空间,您需要 pack ZODB database .

其他数据库(MySQL、PostgreSQL)也有类似的特征。例如,PostgreSQL 必须时常进行 VACUUM 处理。

关于python - ZODB不释放硬盘空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29401207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com