为了账号安全,请及时绑定邮箱和手机立即绑定

SQLite和共享首选项的利弊

SQLite和共享首选项的利弊

宝慕林4294392 2019-07-10 15:57:37
SQLite和共享首选项的利弊在SQLite数据库和共享首选项之间存储信息的好机制是什么?为什么使用共享首选项?为什么要用SQLITE?我试图找出两者之间的区别,这是更好的数据存储机制,但我无法在Google上找到合适的答案。请帮助我的例子和解释。
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

这取决于您想要存储的数据。

SQLite

应该将大量相同的结构化数据存储在SQLite数据库中,因为数据库是为这类数据设计的。由于数据是由数据库构造和管理的,因此可以查询数据子集,该子集使用SQL等查询语言来匹配某些条件。这使得在数据中搜索成为可能。当然,管理和搜索大量数据会影响性能,因此从数据库读取数据比从SharedPreferences读取数据要慢。

SharedPreferences

SharedPreferences是一个密钥/值存储区,您可以在其中将数据保存在特定的键下。要从存储区读取数据,您必须知道数据的键。这使得读取数据非常容易。但是,尽管存储少量数据非常容易-存储和读取大型结构化数据是很困难的,因为您需要为每个数据定义键,而且您不能在数据中进行真正的搜索,除非您有一个命名键的概念。


查看完整回答
反对 回复 2019-07-10
?
呼如林

TA贡献1798条经验 获得超3个赞

这个问题有一个公认的答案,但我认为在这个问题上还有更多的话要说-关于速度。

应用程序的SharedPreferences和SqlitDB都只是文件,存储在设备文件系统上的应用程序目录中。如果数据量不太大,Sqlitt选项将涉及一个更大、更复杂的文件,为简单访问带来更多的处理开销。

因此,如果数据的性质并不决定您的选择(如已接受的答案中所解释的)和速度,那么您可能最好使用SharedPreferences。

而读取一些数据通常是在显示主要活动的关键路径上,所以我认为速度通常是非常重要的。

关于速度和效率的最后一个想法-如果您需要对一些结构化数据使用Sqite数据库,那么在数据库中存储用户首选项可能更有效,因此您不会打开第二个文件。这是一个相当次要的考虑-只有当您需要访问结构化数据和首选项之后才能显示主活动,这可能是值得考虑的。


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 672 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信