核心数据为关系添加索引?

时间:2014-08-12 22:54:04

标签: cocoa core-data

有没有办法为实体中的关系添加索引?我可以看到属性可以编入索引,但不能关系到关系。 我有一个大型数据集,需要检查谓词中实际上有哪些关系对象:

[NSPredicate predicateWithFormat:@"relationshipField = nil"]

所以我认为将这种关系编入索引是一个好主意。 所以我的问题是,可以吗?如果没有,这种情况是否有性能策略?

1 个答案:

答案 0 :(得分:3)

您无法手动执行此操作但不需要,因为 - 从经验上讲 - 核心数据会自动执行此操作。所以这意味着对一个人来说就是这样。关系自动给出索引。检查您的SQLite商店是否有ZENTITY_ZRELATIONSHIP_INDEX等名称,以查看证明。

没有任何有意义的方法可以为许多人提供索引。因此Core Data无法自动执行此操作或公开该选项。 SQLite的索引格式只是按索引的事物排序的行列表,它执行二进制搜索。它无法为多值列构建这样的结构,而多值列是Core Data存储到多个链接的方式。

免责声明:当然,这些都是特定于实现的观察,这些观察出现在我的主观经验中,以应用于当前的核心数据实施。但作为一般规则,我认为您可以放心地说Core Data将尽可能优化关系查找。