Sharedpreferences Vs SQLite用于大数据而无需搜索

时间:2017-02-19 17:11:04

标签: android android-sqlite sharedpreferences android-storage

我知道,对于简单数据类型,当SharedPreferences更容易和更快时,SQLite在技术上是为大量数据而设计的。

我想为一年中的每一天存储简单的真假布尔值。这意味着我要么必须创建3维json并将其作为字符串存储在共享首选项中(或者更确切地说是以年份为关键字的维度数组),或者将年份和数据创建为单独的列(或者它可以是简单的日期列...那就是说我也可以使用" YYYY-MM-DD"作为365布尔值的sharedPreferences的关键。)

现在问题就在这里。如果我100%确定我不需要通过特殊参数功能进行任何搜索/分组/选择,我是否应该使用更复杂的SQLite数据库来存储这些简单数据。因为在我看来,如果我需要存储简单的布尔值(即使总共365+布尔值),我应该使用SharedPreferences,因为它是一个更快的解决方案。但这对我来说似乎有点不对,因为我不确定SharedPreferences是否应该存储这么多变量。

添加

这些布尔值仅在本地存储以用于脱机加载或从用户角度更快地访问。这些1 | 0值存储在每个应用程序用户的服务器上,所以即使我会对数据做一些复杂的工作,我也不确定是否需要在手机上进行。

2 个答案:

答案 0 :(得分:2)

共享首选项可以使用365个值。根据this,共享首选项的大小约为1.4mb。如何共享首选项通常用于保存非常少量的数据,如卷或用户设置。我建议你使用sqlite数据库。它需要一些时间来设置它,但它值得花费时间

答案 1 :(得分:1)

将您的数据存储在共享的首选项中似乎是一个好主意,事实上它只会运行良好,但它采取了一种简单的方法。你永远不知道将来你可能需要什么。您的要求目前已实现,但不会以任何方式扩展。总的来说,值得投入一点时间并正确设置并长期受益。

当然,如果您正在进行一些快速原型制作或快速演示,那么它就是一个不同的故事。

设置"复杂数据库"或者其他什么都不需要耗费时间。试试Realm它真的很快。