gpt4 book ai didi

Firebase 扇出 - 最具成本效益的方法?

转载 作者:行者123 更新时间:2023-12-02 19:15:48 26 4
gpt4 key购买 nike

我知道这个问题可能已被多次提出,但我已阅读了大多数可用的问题,但没有找到任何可以完全帮助回答我的问题的问题。正如 Firebase 团队提出的,扇出技术是确保快速数据读取的推荐方法,但会带来数据复制的成本。我知道这个问题是主观的,取决于应用程序,但就节省成本(美元)和数据读取而言,哪一个是最佳解决方案?

  1. 在多个子节点中发布相同的节点(保存数据只读调用一次,但有冗余,因此消耗更多 Firebase 存储)(参见图片 Firebase Database - the "Fan Out" technique )
  2. 仅发布一个节点,其他通过其 key 对该节点进行引用(不冗余且消耗较少的 Firbase 存储,但需要读取两次 - 获取 key ,并获取该 key 的节点)(参见图 https://stackoverflow.com/a/38215398/1423345 )

就上下文而言,我正在构建一个非营利市场应用程序,因此我需要应用最佳解决方案来平衡成本节省(美元)和快速数据读取。

另一方面,读取两次(带宽)与更大的存储空间?哪一种更划算?

最佳答案

我首先要说的是,理想情况下,在 Firebase 中您只读取或同步必要的内容。因此,您的数据库查询会与其他过滤器耦合,以使查询具体如下可能的。如果你能做到这一点,那么你无论如何都会构建一个非常智能的数据结构,并且具有成本效益。

现在真正的争论是扇出技术或只是发布对节点的引用由于我个人更喜欢扇出并且也成功地使用了它,因此我将仅引用该技术来回答,这也会向您表明我不想使用保留引用等的原因。

  • 首要的是最终用户体验和性能。它以大数据 block 同步的形式出现。一般来说,这意味着不是下载小块,而是瞄准尽可能大的,以便减少 High Cell radio 使用高电池消耗高带宽,并尽快保持应用更新和同步。
<小时/>

如果您的目标是这种应用程序性能,那么您会清楚地看到 Fan-Out 是明显的赢家 优于其他由于以下原因而采用技术。

  1. 您下载了存储在其他节点中的大数据 block ,这不会让您的蜂窝 radio 长时间保持开启状态。
  2. 当您一次下载全部信息时,您的应用的性能会比其他应用更好。显然,我并不是说您应该下载完整的数据库。 这一切都与智能平衡有关,它使您可以一次性下载所需的内容。
  3. 这并不是唯一可以为您带来更快的读取速度和更好的数据结构的技术。 还有其他同样重要的技术,例如索引、数据验证和安全规则所有这些与正确的数据结构正确结合将为您带来更好的性能。
  4. 如果您只有对其他节点的引用而不是实际数据,那么您最终可能会遇到实际上没有任何内容可向用户显示的情况。假设您的用户没有获得良好的连接,因此在只为您提供引用的一次阅读之后,网络就崩溃了。因此,在网络再次恢复之前,您的用户看不到任何内容,相信我,这对于应用程序来说是非常糟糕的情况。 作为开发人员,您的目标应该是减少这些情况发生的可能性

因此,我建议您采用扇出技术,因为当您看到数据过滤、索引和安全规则等其他因素时,它更快且更具成本效益强>。是的,它会因高存储使用率而付出一点代价。但是当您没有满意的用户时,更少的存储意味着什么?这仍然取决于个人喜好。但我分享了我的经验和想法,希望能帮助你做出正确的决定。

我鼓励您调用this并对无 SQL 数据建模有更深入的了解

如果此信息对您有帮助,请告诉我。

关于Firebase 扇出 - 最具成本效益的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807789/

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