假设我有一个模型,但我想将对象保存到超过 1 个 NSPersistentStores。假设我使用单个 NSPersistentStoreCoordinator 来管理这些商店,这种设置的优缺点是什么?
问问题
290 次
1 回答
3
关于原始问题(多个商店,一个协调员):
一个 PSC 下的两个存储的潜在优势是您可以在两个 sqlite 文件之间分散数据(假设这是您正在使用的存储类型)。这可能很有帮助,例如,如果您想在应用程序中发布预填充的 sqlite 文件(您可以通过发布新文件在后续版本中轻松更新该文件),同时在其旁边仍然有用户创建的数据。
缺点是处理不同店铺之间的关系比在一个店铺内处理更麻烦。
关于这个问题的另一个答案(多个协调员):
在同一个商店中使用多个协调器当然有潜在的好处,主要与性能相关。对协调器的任何请求都会将其锁定,因此其他所有人都必须等待获取数据或保存数据。通过使用两个协调器,您可以将锁向下推到 sqlite 文件,它来来去去的速度要快得多。
此外,使用 write-ahead-logging 而不是回滚日志的 sqlite 存储允许多个读取器、单个写入器访问存储。通过使用两个协调器,您可以利用 sqlite 的并发能力。Apple 也在内部使用这种模式。
另请参阅 Apple 关于 Core Data 和 iCloud 的 WWDC 2013 会议(由于开发中心持续中断,无法链接...)
但请记住,所有这些都是非常深奥的,几乎在所有情况下都不是必需的。
于 2013-07-27T13:05:02.513 回答