Android 数据存储,何时使用 Sqlite,何时使用 JSON,Linq 替代方案

Posted

技术标签:

【中文标题】Android 数据存储,何时使用 Sqlite,何时使用 JSON,Linq 替代方案【英文标题】:Android data storage, When to use SqlLite and when to use JSON, Linq alternatives 【发布时间】:2013-03-12 05:12:00 【问题描述】:

我在使用 .Net 和 C# 的 webdev 方面有几年的经验......我真正喜欢的一个功能是用于查询数据的 linq-expressions.. android 有什么类似的东西可以用来查询 JSON还是针对 SqlLite 数据库? (我想我正在寻找一个类型化的表达式/查询框架)。

对于我的下一个问题.. 我应该使用 JSON 方法和 SQLLite 方法中的哪一种.. 什么时候?我知道这已经被问了一百万次了..但似乎没有任何严格的答案..

SQLLite 是否用于更复杂的查询以及当我有大量数据时,而使用 JSON 而数据量较少且不需要太多查询?

我可以将所有 JSON 数据存储在内存中以便更快地读取/写入访问吗?..因为我听说将其存储在存储中/磁盘上可能是一个缓慢的过程。

但另一方面,我也听说 SQLLite 通常很慢...

最后..当我们谈到“慢”时,它是像单个读/写查找整个应用程序几毫秒一样慢,还是像执行查询的内存数据库一样慢和快如闪电的东西

【问题讨论】:

【参考方案1】:

何时使用 SQLite

SQLite 是如何保存数据、如何保护数据的一种形式。通常,如果您想存储更大的数据量并快速访问它们(并且如果这些数据是“敏感的”),SQLite 是不错的选择。因此,我不同意您认为 SQLite 很慢的观点,我猜绝对不是。

我有 SQLite 数据库,大约有 650 000 条记录,并且性能仍然很好(有时需要使用索引)。

何时使用 JSON

JSON 是为人类可读的数据交换而设计的轻量级数据结构,主要是与语言无关的。如果您想通过网络发送数据(将数据发送到远程服务器等),这是一个非常好的选择(也许是最好的选择),但我认为对于数据持久化不是很好,而且它也不像 SQLite 那样安全。

通常您应该比较 JSONXML 但您不能比较 SQLite 和 JSON,因为它们是两个不同的东西。

【讨论】:

【参考方案2】:

总体思路

SqlLite:For Local Storage

JSON:For Server SideStore

【讨论】:

【参考方案3】:

比较 SQLite 和 JSON 是没有意义的。一种是存储方案,一种是数据格式。

在决定选择哪种存储解决方案(SQLite、首选项、文件系统...)之前,您可能应该阅读官方指南:http://developer.android.com/guide/topics/data/data-storage.html

如果您想使用 SQLite 持久性,您可以使用一些第三方 ORM 来简化查询(例如,ORMLite 是最受欢迎的)

【讨论】:

是的,我知道 JSON 是一种格式 :).. 因此,与使用 SQLLite 相比,我真正的意思是在文件中存储 json 格式的文本,以便以后对该文件进行读写操作: )。 好吧对不起,我不明白你的问题是关于 SQLite VS 文件存储的。无论如何,我提到的链接应该对您有所帮助。

以上是关于Android 数据存储,何时使用 Sqlite,何时使用 JSON,Linq 替代方案的主要内容,如果未能解决你的问题,请参考以下文章

Android API 28 使用啥 SQLite 版本,历史上何时更新? [复制]

sqlite 的清单类型何时有用?

Android探索之数据存储Sqlite的介绍及使用

Android开发之利用SQLite进行数据存储

详解Android中的SQLite数据库存储

Android数据存储文件存储SQLite数据库简单使用 sharedPreferences存储