使用Core Data和Sqlite处理大数据?

时间:2014-01-08 18:23:18

标签: ios iphone ipad sqlite core-data

我知道使用Coredata和Direct Sql命令在制作本地存储时用于iOS的区别。但仍然可以任何人建议哪一个更好,更有效和优化,并可以使用大数据?呼叫如何与它们一起工作? Coredata也有与之交互的背景,所以有没有增加打电话的速度?非常感谢你的帮助。

3 个答案:

答案 0 :(得分:8)

核心数据。 Apple已投入大量精力使其在iOS上运行良好。考虑到您在有限的CPU和有限的内存环境中工作,您真的想要使用一个考虑这些的框架。

如果你直接使用SQLite,你需要自己处理所有这些。 ARC不会帮助你,因为它是一个C库。

核心数据旨在让您的记忆得到控制。你当然可以打破它,但你会更进一步使用Apple的库而不是避免它们。

答案 1 :(得分:1)

除非您正在做一些非常专业的事情,否则Core Data可能是最合适的。请记住,虽然核心数据不是关系数据库。

以下是一些其他链接可帮助您做出决定:

此外,如果您决定使用SQLite路由,FMDB是一个很好的Objective-C包装器。

答案 2 :(得分:0)

"Big data"通常是指数据集的大小超出常用软件工具在可容忍的时间内捕获,策划,管理和处理数据的能力。移动设备永远不会直接使用大数据 - 它们可以使用数据的子集,通常通过一些Web服务。但是,整个数据集永远不会存储在本地。您通常会谈论太字节的信息。

但是,在处理数据的子集时,您使用的方法取决于您要执行的操作。核心数据是对象图和持久性框架,而不是关系数据库。如果您需要管理对象图并更改该图,Core Data通常非常适合。但是,如果您想进行复杂的数据挖掘,那么最好使用SQLite。

请记住,核心数据经过大量优化,可以在有限的内存中使用有限的处理能力;如果您使用SQLite,您需要自己完成大部分管理工作。

从设计的角度来看,使用服务器进行繁重的查询和数据挖掘会更好,并且只能传回所需的子集以便最大限度地减少移动设备上的处理。