大型 CoreData 存储对 Time Machine 的影响

Posted

技术标签:

【中文标题】大型 CoreData 存储对 Time Machine 的影响【英文标题】:Effect of a Large CoreData Store on Time Machine 【发布时间】:2011-02-19 23:54:27 【问题描述】:

我正在进行的一个项目可能需要在 CoreData 中存储大量(例如 ~5GB)二进制数据。我想知道这是否会对用户的 Time Machine 备份产生负面影响。从阅读文档来看,CoreData 的持久存储似乎使用单个文件(例如 XML、SQLite DB 等),所以在我看来,任何时候用户更改数据存储中的一条数据时,Time Machine 都会将数据存储复制到将其全部存储到备份驱动器中。

CoreData 是否提供对 Time Machine 更友好的不同数据存储格式?

或者他们是更好的方法吗?

【问题讨论】:

【参考方案1】:

您可以在数据模型中使用配置将较大的实体分隔到不同的持久存储中。您需要自己创建持久存储协调器,使用 addPersistentStoreWithType:configuration:URL:options:error: 以正确配置添加每个存储。

【讨论】:

【参考方案2】:

要直接回答您的问题,我唯一能想到的是将您的 Core Data 存储放在一个稀疏磁盘映像中,这样 Time Machine 只会备份更改后的频段。但实际上,我认为如果您尝试将这么多数据存储在 SQLite/Core Data 中,您会遇到其他问题。我建议您尝试使用基于磁盘的数据库,例如 PostgreSQL。

【讨论】:

以上是关于大型 CoreData 存储对 Time Machine 的影响的主要内容,如果未能解决你的问题,请参考以下文章

(何时)CACurrentMediaTime/mach_system_time 在 iOS 上是不是环绕?

ios coredata 搜索大型数据集

迁移大型 Core Data 数据库崩溃

如何在 CoreData 中正确添加大型数据集?

Mach3寻边和对刀代码

MACH3自动对刀代码编辑