最好的数据库devise选项Android应用程序与巨大的数据

我是新的Android应用程序开发和一个新的成员在stackoverflow。 我目前正在devise一个配方应用程序。 我已经决定应用程序的function和它将覆盖的范围。 在涵盖世界各地的食谱方面,范围非常广泛。 我将在这个过程中处理大量的数据。

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

以下是我在思考两者之间的一些想法:

1)SQLite:这可能是一个不错的select,但会慢,因为它需要访问文件系统。 我可以通过在AsyncTask中执行DB数据获取任务来消除缓慢。 但是,那么在不同的手机上可能存在一个存储限制。 另外我相信使用SQLite比使用远程数据库更容易。

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

另外,当我从上面的数据库中取出数据时,我还有一个关于数据格式的问题。 有没有一种方法可以保留我的数据的格式?

如果有人能就上述情况分享他们的知识和专家意见,我将非常感激。 此外,这不是我的功课,我不寻找任何现成的代码解决scheme。 我只是寻找提示/build议,以帮助我清楚自己的想法,并帮助我做出决定。 我已经找了一段时间了,但没有find具体的信息。 我希望在这里遇到类似情况的经验丰富的人士可以得到一些好的build议。

感谢您阅读这篇长文章。

Solutions Collecting From Web of "最好的数据库devise选项Android应用程序与巨大的数据"

结合这两种方法怎么样?

  • 拥有最近最less使用的接收器的本地SQLite数据库,因此您一直不需要networking。 networking比访问文件系统慢得多。

  • 某些远程数据库通过一些HTTP接口访问,您可以在其中读取/写入整个数据库。 而且,如果您希望用户能够为其他用户添加信息,则无论如何您都需要使用外部数据库。

SQLite:这可能是一个不错的select,但会很慢,因为它需要访问文件系统。

访问本地数据库是非常快的,5ms左右,如果它只是一个简单的只读查询小型数据库。

但是,那么在不同的手机上可能存在一个存储限制

取决于你的巨大数据库的定义。 如果只有2MB就足够存储大量的纯文本信息,这是可以的。

另外我相信使用SQLite比使用远程数据库更容易。

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

我在这里可以看到的问题是同时发出多个数据库请求的速度缓慢。

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

我build议一个简单的REST接口到你的数据库,因为它非常轻量级,但不会将数据库直接暴露给Web。 有大量的关于创build数据库接口的教程和书籍 。 甚至还有像nextDb这样的托pipe数据库服务,可以帮你完成大部分的工作。

有没有一种方法可以保留我的数据的格式?

您可以将HTML格式的数据存储在数据库中,并将其显示在WebViewTextView (通过Html#fromHtml() ) – 都可以显示带格式的文本。

数据库不关心你存储什么types的文本,通过互联网传输,你可能需要对文本进行编码,以免干扰传输格式(XML,JSON,…)。

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

你将有1GB的存储所有的数据集/图像等

我不使用parsing的一切,但我强烈build议大数据计划,因为他们做你所有的缩放。 检查API ,我认为这将是值得你的时间。

我刚开始工作几个我自己的项目,我再次使用Parse。 我不得不说在过去的6-8个月里它有了很大的提高。 特别是与Twitter和Facebook的整合。

这里的关键问题是数据的大小 – 任何重要的食谱数据库将太大,无法存储在手机上,所以你似乎坚持使用远程数据库解决scheme。

而不是尝试访问来自android的远程数据库我build议你使用一个之间的Web应用程序,将处理来自应用程序的请求,并返回所需的JSON对象。

这完全取决于您的软件要求。 如果你需要处理less量的数据,那么你可以selectSQLite,但对于数据量巨大的数据更好地使用远程数据库。

SQLite:它工作正常,数据量less,我经历了它的响应时间是好的。

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