gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-28 23:31:44 25 4
gpt4 key购买 nike

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

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

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

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

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

一旦我从上述数据库中提取数据,我还有一个关于数据格式的问题。有没有办法可以保留我的数据格式?

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

感谢您阅读这篇长文。

最佳答案

将这两种方法结合起来怎么样?

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

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

SQLite : This could be a good option but would be slow as it would need to access the file system.

访问本地数据库非常快,如果只是对小型数据库进行简单的只读查询,则需要 5 毫秒左右。

But then there could be a limitation of the storage on different phones

取决于您对大型数据库的定义。如果它只有 2MB 就可以存储大量纯文本收据。

Also I believe using SQLite would be easier as compared to using a remote DB.

是的,Android 有一个不错的内置 SQLite API,但没有远程数据库 API。而且您不需要设置数据库服务器和接口(interface)。

The issue that I can see here is the slowness with multiple DB requests coming at the same time.

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

我建议为您的数据库提供一个简单的 REST 接口(interface),因为它非常轻量级,但不会将您的数据库直接暴露给网络。有吨tutorialsbooks关于创建这样的数据库接口(interface)。甚至还有像 nextDb 这样的托管数据库服务。为您完成大部分工作。

Is there a way I could preserve the formatting of my data ?

您可以将 HTML 格式的数据存储在数据库中,并将其显示在 WebView 中。或 TextView (通过 Html#fromHtml() ) - 两者都可以显示格式化文本。

数据库不关心您存储的文本类型,为了通过 Internet 传输,您可能需要对文本进行编码,使其不会干扰传输格式(XML、JSON、...)。

关于android - 具有海量数据的 Android 应用程序的最佳数据库设计选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com