针对具有海量数据的Android应用程序的最佳数据库设计选项

针对具有海量数据的Android应用程序的最佳数据库设计选项,android,database,Android,Database,我是Android应用程序开发新手,也是stackoverflow的新成员。我目前正在尝试设计一个配方应用程序。我已经决定了应用程序的功能和它将涵盖的范围。这个范围对我来说非常广阔,涵盖了世界各地的所有食谱。我将在这个过程中处理大量数据 我目前正试图找到一种处理我的应用程序中数据的好方法。到目前为止,根据我在不同论坛上读到的内容,我相信在数据库选择方面我有两个选择:1)SQLite 2)远程服务器上的数据库(MySql/Postgre) 以下是我在两人之间做出决定时的一些想法: 1) SQLit

我是Android应用程序开发新手,也是stackoverflow的新成员。我目前正在尝试设计一个配方应用程序。我已经决定了应用程序的功能和它将涵盖的范围。这个范围对我来说非常广阔,涵盖了世界各地的所有食谱。我将在这个过程中处理大量数据

我目前正试图找到一种处理我的应用程序中数据的好方法。到目前为止,根据我在不同论坛上读到的内容,我相信在数据库选择方面我有两个选择:1)SQLite 2)远程服务器上的数据库(MySql/Postgre)

以下是我在两人之间做出决定时的一些想法:

1) SQLite:这可能是一个很好的选择,但速度会很慢,因为它需要访问文件系统。我可以通过在AsyncTask中执行DB数据获取任务来消除这种慢度。但不同手机的存储空间可能会有限制。我还相信,与使用远程数据库相比,使用SQLite会更容易

2) 远程数据库:我在这里看到的问题是多个DB请求同时出现时速度缓慢。我可以在这里以某种方式使用线程来排队多个请求并逐个处理它们吗?有没有一个有效的方法来做到这一点

另外,我还有一个问题,就是当我从上面的数据库中取出数据时,数据的格式。有没有办法保存数据的格式

如果有人能分享他们对上述情景的知识和专家评论,我将不胜感激。此外,这不是我的家庭作业,我不寻找任何现成的代码解决方案。我只是在寻找能帮助我理清思路和做出决定的提示/建议。我一直在寻找这个有一段时间了,但无法找到具体的信息。我希望我能从那些可能遇到过类似情况的有经验的人那里得到一些好的建议


感谢您阅读这篇长篇文章。

这里的关键问题是数据的大小-任何重要的食谱数据库都太大,无法存储在手机imho上,因此您似乎一直使用远程数据库解决方案


与尝试从android访问远程数据库不同,我建议您使用一个中间web应用程序,它将处理来自应用程序的请求并返回您需要的JSON对象。

这完全取决于您的软件需求。如果您需要处理少量数据,那么可以选择SQLite,但是对于大量数据,最好使用远程数据库

SQLite:它工作正常,数据量很少&我感觉它的响应时间很好


远程数据库:我认为您可以使用小型服务器端应用程序将数据提交到客户端应用程序。它将解决/减少与线程相关的问题/复杂性。

将这两种方法结合起来如何

  • 本地SQLite数据库具有最近使用最少的receipes,因此您不需要一直使用网络。网络比访问文件系统慢得多

  • 通过HTTP接口访问一些远程数据库,您可以在其中读/写整个数据库。如果您希望用户能够为其他用户添加receipes以查看,那么无论如何您都需要一个外部数据库

SQLite:这可能是一个很好的选择,但速度会很慢,因为它需要访问文件系统

访问本地数据库的速度非常快,如果它只是一个小型数据库上的简单只读查询,则大约为5毫秒

但不同手机的存储空间可能会有限制

取决于您对大型数据库的定义。如果只有2MB就足够存储大量纯文本的receipes,这也没关系

我还相信,与使用远程数据库相比,使用SQLite会更容易

是的,Android有一个很好的内置SQLite API,但没有远程数据库API。您不需要设置数据库服务器和接口

我在这里看到的问题是多个DB请求同时出现的速度慢

一个像样的数据库服务器可以处理数千个请求。取决于您的服务器硬件和软件。应该有更多的信息。所需的性能取决于您拥有/期望的用户数量

我建议为您的数据库提供一个简单的REST接口,因为它非常轻量级,但不会将您的数据库直接公开给web。关于创建这样的数据库接口,有大量的工作要做。甚至还有像这样的托管数据库服务为您完成大部分工作

有没有办法保存数据的格式

您可以在数据库中存储HTML格式的数据,并将其显示在或
TextView
(via)中-两者都可以显示格式化文本


数据库不关心您存储的文本类型,为了在Internet上传输,您可能需要对文本进行编码,这样它就不会干扰传输格式(XML、JSON等)。

一个简单的方法是集成到您的应用程序中。他们有一个很好的框架,可以轻松地集成到iOS和Android中。他们的计划是免费的,所以您可以免费使用多达100万个API请求,之后每次请求都可以免费使用7美分

您将有1gb存储所有数据集/图像等

我并不是什么都使用parse,但我强烈建议在大型数据方案中使用parse,因为它们可以为您进行所有的扩展。看看这个,我想这是值得你花时间的


我刚开始做一些我自己的项目,我正在再次使用Parse。我不得不说,在过去的6-8个月里,情况有了很大改善。尤其是Twitter和Facebook的整合。

谢谢!!我以前在一个applic中使用过JSON方式