首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite与Plist性能

SQLite与Plist性能
EN

Stack Overflow用户
提问于 2013-08-08 15:26:05
回答 2查看 1.1K关注 0票数 2

我有一些数据必须在本地存储在我的应用程序中,我想知道什么是最好的存储方式(从性能的角度来看)。数据不多,也不少。从plist的角度来看,数据可能如下所示:

代码语言:javascript
复制
 -root
    -main_block1
        -sub_block1
            -some_data
            -some_data
            -some_data

        -sub_block2
            -some_data
            -some_data
            -some_data

        -sub_block3
        -sub_block4
        ...
        -sub_blockn
    -main_block2
    -main_block3
    ...
    -main_blockn

将有大约3-10 (13-15最大,我猜)主要区块。将主块看作一个字典,标题大约有10个字符。在每个主块中将有1-10 (最多10)个子块,这些子块也是字典。每个子块将包含一些纯文本数据。不超过100个字符的字符串(或可能是200-300)。

我需要读取这些数据,并将其混合在一起(交换一两个主块,交换一两个子块)。

我需要它尽快,因为我已经有相当多的东西在我的应用程序,所以我想知道我应该使用什么?属性列表文件还是SQLite数据库?

SQLite数据库基本上是一个文本文件,它周围有一个代码包装器,可以操作它的内容,所以我猜在我的情况下,plist文件会更快……

如前所述,数据不会超过几十千字节(希望不会:P)。

编辑:要添加一些信息:主块是需要按此顺序加载的视图,子块是需要按此顺序加载的主视图的子视图。一些数据将被输入到这些视图中。因此,主视图和子视图的顺序将不时更改,当用户决定时,子视图的数据将被重新加载。希望这能帮点忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-08 17:06:06

SQLite的真正目的是搜索记录存储,将数据连接在一起,并过滤出不需要的数据。听起来,您的数据结构可以很容易地放入内存中(尽管您应该对其进行度量以查看您拥有的内容),但不需要进行任何编辑。如果您必须更改表的模式,那么这种编辑在SQLite中将是一个令人头疼的问题。为什么不将其保留为字典/数组结构,并使用序列化将其存储在文件中,甚至在用户默认情况下?如果您打算在苹果的标准视图中显示它,您希望一个视图立即显示另一个视图中的更改,也许CoreData是您的朋友。

票数 3
EN

Stack Overflow用户

发布于 2013-08-08 15:29:58

那得看情况。如果您将不断地重新引用数据结构,并且每次重新加载plist,那么SQLite DB (保持打开状态)将更快。如果您只加载和引用数据一次,那么plist将获胜。当然,您也可以将核心数据用于简单的SQLite函数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18130005

复制
相关文章

相似问题

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