我正在学习核心数据,之前我在其中一个项目中使用过SQLite。我的问题是,我应该使用Core Data vesus SQLite的场景?我已经阅读了Core Data的一些优点,它提供了可视化的方式来设计数据结构,抽象级别的访问数据和SQLite可以在多平台上使用,但是有什么与数据大小有关吗?如果数据大小比我们应该使用核心数据,反之亦然?
答案 0 :(得分:4)
核心数据:
主要功能是图形管理(虽然读取和写入磁盘是一个重要的支持功能)
对存储在内存中的对象进行操作(尽管它们可以从磁盘上延迟加载)
与完全成熟的对象一起使用,这些对象可以自我管理很多行为,并且可以进行子类化和自定义以用于进一步的行为
非事务性,单线程,单用户(除非您围绕提供这些内容的Core Data创建完整的抽象)
仅在内存中运行
需要保存流程
可以非常快速地在内存中创建数百万个新对象(虽然保存这些对象会很慢)
将数据约束留给程序的业务逻辑端
数据库或SQLite:
主要功能是存储和提取数据
对存储在磁盘上的数据进行操作(或最低限度地逐步加载)
存储“哑”数据
可以是交易的,线程安全的,多用户的
可以删除表格并编辑数据而无需加载到内存中
永久保存到磁盘(通常具有抗冲击性)
创建数百万个新行可能会很慢
提供数据限制,例如“唯一”键
从以下链接引用 http://cocoawithlove.com/2010/02/differences-between-core-data-and.html
答案 1 :(得分:0)
Core Data的数据量没有限制 - 事实上,它使用SQLite作为商店,所以数据大小不应该打扰你。
核心数据是一个非常好的解决方案,因此我建议您在项目中使用它。
答案 2 :(得分:0)
对于在这种情况下实体之间具有更多“多对多”或“一对多”关系的大数据(超过100000条记录),您可以使用SQLite,否则您可以毫无问题地获取核心数据。
还有一个建议,请在做出任何决定之前规范化您的数据库。
使用SQLite处理大数据, 有一个非常好的教程 Improve INSERT-per-second performance of SQLite?
答案 3 :(得分:0)
在我的经历中,数据大小从来都不是问题,但我听说SQLite更强大。我已经使用了SQLite,因为我们希望我们的应用程序预先填充了用户的数据,而Core Data则用于将单个用户填充为地址簿之类的内容。