我正在使用CoreData
作为我的本地应用程序存储管理器。
有时我会保存BLOB
文件(图像、视频等(,并注意到应用程序大小增加,这是意料之中的。
当我删除一些数据时,我的问题出现了,但应用程序大小没有改变。
我已经下载了该应用程序的容器,并注意到appname.sqlite
和appname.sqlite-wal
仍然很大。
有谁知道为什么会这样?
注意:我正在使用 CoreData 和 CloudKit 以及NSPersistentCloudKitContainer
这是否有帮助。
在 CoreData 下是一个 sqlite 数据库。Sqlite 的vacuum
命令文档解释了正在发生的事情
https://www.sqlite.org/lang_vacuum.html
从 SQLite 数据库中删除内容时,通常不会擦除内容,而是将用于保存内容的空间标记为可重复使用。
您可以尝试连接到底层 sqlite 数据库并直接在其上使用真空。
如何清空核心数据SQLite数据库?
但是,在您的情况下,我会遵循@matt的建议,不要以这种方式使用 BLOB。