ios - SQLite 与 Plist 性能对比

标签 ios objective-c performance sqlite plist

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

 -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 个)主要区 block 。将主 block 视为具有大约 10 个字符作为标题的字典。在每个主 block 中,将有 1-10 个(最多 10 个)子 block ,它们也是字典。每个子 block 将包含一些纯文本数据。不超过 100 个字符(或可能 200-300)的字符串。

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

我需要它尽可能快,因为我的应用程序中已经有很多东西,所以我想知道我应该使用什么?属性列表文件还是 SQLite 数据库?
SQLite 数据库基本上是一个文本文件,周围有一个代码包装器来操纵它的内容,所以我猜在我的情况下,plist 文件会更快......

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

编辑: 添加一点信息:主 block 是需要按此顺序加载的 View ,子 block 是主视图上需要按此顺序加载的 subview 。一些数据是将被提供给那些 View 的数据。因此主视图和 subview 的顺序将不时更改, subview 的数据将在用户决定时重新加载。希望这能有所帮助。

最佳答案

SQLite 真正用于搜索记录存储、将数据连接在一起以及过滤掉不需要的数据。听起来您的数据结构可以很容易地放入内存(尽管您应该测量它以查看您拥有什么),几乎不需要编辑。如果您必须更改表的架构,那么在 SQLite 中进行编辑将是一件令人头疼的事情。为什么不将其保留为字典/数组结构,并使用序列化将其存储在文件中,甚至存储在用户默认值中?如果您打算在 Apple 的标准 View 中显示它,您希望一个 View 立即显示在另一个 View 中所做的更改,也许 CoreData 是您的 friend 。

关于ios - SQLite 与 Plist 性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130005/

相关文章:

objective-c - 在 swift 中使用 objective-c 中的静态字符串

objective-c - 侧边栏演示 - replaceSubview

java - 如何将图像 dpi 从 96 dpi 调整为 72 dpi

json - 尝试减少 JSON 大小是否值得?

ios - 无法将自动布局约束添加到UITableViewCell中的元素

ios - 如何使用 NS_ENUM

ios - 当我的摄像头打开时检测人脸

performance - 如何计算三重嵌套循环中的频率计数

iphone - 如何使用 Xcode 4.0.2 调试 iOS 5 设备上的崩溃?

ios - 如何在 Interface Builder NIB 中使用 GLKView 设置 GLKViewController 库对象