我应该将消息存储在我的数据库中还是每次都查询系统 SMS 数据库?

Posted

技术标签:

【中文标题】我应该将消息存储在我的数据库中还是每次都查询系统 SMS 数据库?【英文标题】:Should I store messages in my database or query the system SMS database everytime? 【发布时间】:2018-05-28 05:59:57 【问题描述】:

我正在开发一个短信应用程序。每次用户打开应用程序时,我都会收到来自 android Database 的消息。

在大约有 100 条消息的设备上,它运行良好。但是对于具有 10,000 条消息的设备,该应用在获取所有信息后需要大约 20 秒才能显示列表。

为了解决这个问题,我在这里考虑三种可能的选择:

    我应该考虑将所有数据保存到我自己的database 吗?它会更快吗? 我应该先收到一些消息,然后在后台收到其余消息吗? 您可能建议的任何其他选项。

提前致谢。

【问题讨论】:

您必须像分页一样...根据位置获取第一条记录从您的服务器获取下一条记录 【参考方案1】:

以下是您问题的答案

1.我应该考虑将所有数据保存到我自己的数据库吗?会吗 让它更快?

不,不要那样做。这不会使它更快。您将得到相同的响应。

2。我应该先收到一些消息,然后在 背景?

您可以这样做,但不需要这样做以在后台获取所有消息。因为用户可以看到有限数量的消息,并且他可能不会看到底部的所有消息。所以让那些在后台是没有用的(直到或除非有业务需求)

您可能建议的任何其他选项。

是的,您需要实现分页,并且需要跟踪第一次需要加载多少条消息,以及在用户滚动时获得更多消息。在这种情况下,您需要自己跟踪已加载的消息数量以及要加载的消息数量。要实现这一点,您将需要实现 android 的 PULL TO REFERESH 机制。很多教程都可以在网上找到。

希望能回答你的问题。

【讨论】:

我选择了分页。谢谢。

以上是关于我应该将消息存储在我的数据库中还是每次都查询系统 SMS 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

我应该在我的图像表中存储评论/喜欢/不喜欢的数量吗?

我应该将我的 Nuxt 应用程序直接部署到 Google App Engine 还是应该在我的代码存在于存储库中的地方使用 Gitlab CI/CD?

刷新访问直通查询

只进行一次查询并将其存储在数组中还是每次都进行查询更有效?

在db中为每个“对话”使用新的SQL表

如何在每次上传桶时更新Big Query后端数据