我正在做的一个项目可能需要在CoreData中存储大量(例如~5 5GB)二进制数据。我想知道这是否会对用户的Time Machine备份产生负面影响。从文档中可以看出,CoreData的持久性存储使用了单个文件(例如XML、SQLite DB等),所以在我看来,每当用户更改数据存储中的一部分数据时,time Machine都会将整个数据存储复制到备份驱动器中。
CoreData是否提供了一种对时间机器更友好的不同数据存储格式?
或者他们是做这个的更好的方法?
发布于 2011-02-21 09:56:22
为了直接回答你的问题,我唯一能想到的就是将你的核心数据存储放在一个稀疏捆绑的磁盘映像中,这样Time Machine就只会备份更改过的频带。但实际上,我认为如果你试图在SQLite/Core数据中存储如此多的数据,你会遇到其他问题。我建议您尝试使用基于磁盘的数据库,如PostgreSQL。
发布于 2011-02-21 11:56:05
您可以使用数据模型中的配置将较大的实体分隔到不同的持久存储中。您将需要自己创建持久存储协调器,使用addPersistentStoreWithType:configuration:URL:options:error:添加具有正确配置的每个存储。
https://stackoverflow.com/questions/5054301
复制相似问题