性能问题 - iOS中的plist vs sqlite

时间:2011-05-11 04:38:20

标签: iphone ios ipad

我需要跟踪一些变量并经常保存它们。我不需要复杂的搜索和排序,只需简单的读/写。

plist和sqlite之间的读/写性能有什么不同?

除了上述两种方法外,我应该使用核心数据吗?

请给我一些提示。

感谢。

3 个答案:

答案 0 :(得分:7)

在SQlite中,您可以执行所有与SQL相关的功能,例如create,delete ..以及存储大量数据。但是在Plist中你可以使用jst商店。

Plist和SQLite具有不同的用途,如下所示。

PList是一种文件格式,用于存储少量结构数据(少于几百千字节),通常是字典。 PList本身没有排序功能,尽管可以轻松编写代码来对其进行排序。 属性列表可能是最容易维护的,但它将一次性加载到内存中。这可能会占用设备的大量内存

SQLite是一个成熟的数据库。文件大小(在iPhone上)基本上是无限的。内置排序功能。查询和关系表设计是可能的。性能应该与您可能提出的任何排序算法一样好。 另一方面,sqlite数据库将仅加载您请求的数据。我不确定您的数据是如何构建的,但您可以使用单个数据库表轻松创建键值对。 (带有键列和值列的单个表)然后,如果是我,我会编写一个Objective-C类来包装数据库查询,这样我就可以编写简单的语句,如:

NSString *welcomeText = [[MyData sharedData] dataWithKey:@"WelcomeText"];

首先将数据放入数据库并不困难。您可以使用命令行sqlite3 utility来批量加载数据。有一个名为.import的命令,它将从文本文件中导入数据。

答案 1 :(得分:3)

根据@Robert Harvey在之前的SO问题plist or sqlite

中提供的答案
  

PList是用于存储的文件格式   少量的结构数据(少   超过几百千字节),   通常是字典。 PList没有   具有排序功能   本身,虽然代码很容易   写它来排序它。属性列表是   可能是最容易维护的,但是   它将被加载到内存中   一旦。这可能会占用很多   设备的记忆。

     

SQLite是一个成熟的数据库。   文件大小(在iPhone上)是   基本无限。排序   内置功能。查询   和关系表设计是   可能。表现应该是   你的任何排序算法都很好   可能会想出来。一个sqlite数据库,   另一方面,只会加载   你要求的数据。我不知道怎么做   您的数据是结构化的,但您可以   很容易创建键值对   使用单个数据库表。

     

如果您正在存储“大数据”   你将受益于sqlite。   特别是如果你要成为   执行复杂查询,   提取,搜索和排序   等。

答案 2 :(得分:0)

如果您要进行搜索等操作,则必须使用sqlite。在sqlite中,我们可以存储大量数据但是在plist中是不可能的。我不知道它之间的性能。