首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用唯一约束将大量数据导入核心数据

使用唯一约束将大量数据导入核心数据
EN

Stack Overflow用户
提问于 2018-03-14 11:04:30
回答 1查看 153关注 0票数 1

我有一个带有关键字的实体词是一个字符串类型的uniqueConstraint。现在,我必须从文本文件中导入大量(>100000条记录)带有新关键字的单词。我尝试创建coredata NSManagedObject并插入到NSPolicyObjectTrump上下文中,以便将新关键字与旧关键字合并。但不幸的是,由于coredata解决冲突的过程,我的上下文保存项目进展缓慢(2-3分钟)。那么,哪种方法是导入这么多项目并确保没有违反coredata上的uniqueConstraint的最佳方法?我是否应该预先创建sqlite,以及如何用相同的对象模型迁移sqlite文件?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 05:44:49

  1. 将数组分割成多个片。每片应该有200件左右。您应该测试和调整这个数字,以便为您的应用程序找到合适的批处理大小,但是这个数字在我自己的应用程序中对我起了作用。
  2. 为每个切片创建一个操作队列和一个操作,这样您就可以一次处理每个切片。
  3. 对于需要处理的每个片段:
代码语言:javascript
复制
- Fetch all entities with that have the same ID of the element you are inserting (with ONE fetch request)
- Inserted the fetched elements into a dictionary where the key is the unique Id and the value is the mananagedObject that you fetched
- For each element see if you already have a duplicate.  If you do then update or ignore it (depending on your application logic). If you don't have one then insert it
- Save the context before moving on to the next batch
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49276084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档