核心数据。填写2个双链接实体的最快方法?

时间:2013-09-27 13:41:16

标签: ios core-data entity

我有2个表(和类似的实体):

  1. 类别(具有字符串属性标识符)

  2. CategoryLink(属性category1和category2是指向Category对象的指针)

  3. 我有一个文本文件,其中包含有关类别及其链接的信息。有关链接的信息表示为第一个和第二个链接ID对。

    我想使用Core Data填充我的数据库。我填写类别足够快,但我在使用CategoryLink时遇到了麻烦。

    我最好的实现是:

    1. 获取按标识符排序的所有类别;

    2. 从文件中获取整个链接信息到字典数组,按第一个项目ID排序;

    3. 来自(1)

    4. 的每个类别的每个循环 循环(3)中的
    5. 我在迭代中使用(2)中的ID搜索第二个类别,并创建CategoryLink实体的对象。

    6. 性能太慢,因为应该插入很多类别和CategoryLinks记录。那么有什么方法可以改善性能吗?

1 个答案:

答案 0 :(得分:0)

假设您正在内存中进行所有查找,最重要的性能因素是您保存上下文的频率。

不要在循环的每次迭代中保存。尝试分批保存。理想的数量取决于数据,但通常约为500-2000。

对于初学者,请尝试仅在结尾处保存并查看需要多长时间。

我会遍历你排序的词典列表并始终保持对catgory1的引用。