2012-05-15 151 views
2

我们正在开发一个应用程序,它需要处理一些不重要的数量的结构化数据。什么是iPhone和iPad最先进的数据库库?高级iOS数据库

+0

我可以发布sqlite的相关通用代码,可以在任何应用程序中实现,如果你需要.. coredata更容易 –

回答

3

有两个明显的候选人:SQLite或核心数据。

SQLite为您提供了较低的粒度/灵活性,但您必须编写更多代码。尽管我还没有亲自尝试过在iOS中使用这么大的东西,但SQLite对于2GB数据集应该是很好的选择。

Core Data将您的细节从您的文摘中抽离出来,从而避免您编写大量代码,但优化可能会相当复杂,并且有许多细节需要处理。

对于Core Data来说,最初的学习曲线(除非你碰巧已经是SQL专家)可能更容易。

+0

核心数据是苹果自己的技术,对吧? – Cartesius00

+0

这是正确的,尽管在iOS中它实际上在幕后使用SQLite。 –

+1

是的,是的。为了澄清,Core Data实际上只是包装了底层数据存储(无论如何通常是SQLite)。编辑:打我几秒钟! – Dima

0

是的,你可以在iPhone上使用sqlite和coredata作为数据库(持久存储)。但是如果数据库变大,sqlite会比coredata得分。你没有提到你的数据的大小。对于较小的数据,你甚至可以使用plist速度明显更快,但对于较大的数据而言,可见性能问题

有一些sqlite3的包装器,如EntropyDbFMDB你可以使用。

无论是包装好的

+0

“如果数据库变大,则对coredata执行sqlite评分” - 在许多情况下这不是真的。实际上,对于大数据集,核心数据中的批量提取可以比原始SQLite带来更好的性能。无论如何,核心数据都是在SQLite上进行分层的,苹果的工程师比我们大多数人能够更好地优化他们的查询和与SQLite的交互。 –

+0

是的,但我在我的项目中试过,数据大小超过1 GB,使用sqlite3大大缩短了检索时间.. –

2

如果你追求的SQLite,您可以使用FMDB目标C包装,从而大大简化了你的代码。很多,比自己与SQLite3 C接口连接要容易得多。我用它与一个非常复杂的SQL数据库,它是一个救生员。