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