一个一般的 CoreData/SQLite 问题
NSManagedObjectContext
使用 SQLite 存储保存时,这两种情况之间是否存在显着差异:
- 在包含10的对象中添加/更改/删除一个对象后,否则未更改
NSManagedObjectContext
NSManagedObjects
- 在包含10'000的对象中添加/更改/删除一个对象后,否则未更改
NSManagedObjectContext
NSManagedObjects
一个一般的 CoreData/SQLite 问题
NSManagedObjectContext
使用 SQLite 存储保存时,这两种情况之间是否存在显着差异:
NSManagedObjectContext
NSManagedObjects
NSManagedObjectContext
NSManagedObjects
根据我对企业对象(Core Data 是从它演变而来的)的经验进行概括,我会说你的两个场景在没有索引的情况下同样快,而在第二个场景中,索引会稍微慢一些。
使用 SQL 存储,添加一个对象的成本在很大程度上是固定的,无论图中有多少其他对象。索引确实会导致缩放效果,因为索引依赖于其他现有对象。但是,在绝大多数情况下,这并不重要。
图表中的关系越复杂,受图表总大小影响的保存就越多。显然,如果你的图只有十个对象,那么没有任何关系可以有超过十个对象。如果您有一个有 10,000 个的关系,则关系可能会更大并且需要更长的时间来处理。
总之,带有 SQL 存储的 Core Data 似乎在很大程度上不受图表大小的影响。
分析将告诉您是否存在显着差异。但是,我怀疑店员的类型会影响表演。在 SQLite 数据库中更新对象可能比在 XML 树中更新更快且更具可扩展性。
根据我之前的经验,没有显着差异。如果要添加/更改/删除的对象包含很多索引属性,那么与没有索引属性的对象相比,它会稍微多一些,但这是可以预料的,因为索引也会被修改。