在coredata中插入记录需要多长时间?

时间:2017-02-21 09:22:10

标签: swift core-data swift3

我在我的核心数据实体中插入记录。 随着记录的增加需要花费时间来插入记录。

当我的实体有大约10000条记录时,我有6秒的记录来插入100条记录(循环逐个插入)。

我正在做的是在插入时检查如果该记录已经存在,那么我正在更新该记录,否则插入。

循环的每次迭代都有14个关系表的信息。

所以这没关系?或6秒更多?

1 个答案:

答案 0 :(得分:1)

不,太久了。你做错了。但有更好的方法!对要首先插入的所有记录执行单次提取。然后通过您确定唯一的查找键将它们存储在字典中(可能是某种ID)。然后,您只需检查字典,而不是为每个插入执行获取操作。如果你有很多关系,并且你的创建和/或更新方法正在进行提取(以确保唯一性),那么提取的数量很快就会失控。您可以通过传递查找字典来解决此问题,以便不必执行更多提取。当然,您必须小心不要将这些字典传递给与完成fetch的managedObjectContext无关的线程。

相关问题