我知道这个问题可能已多次提出,但我已经阅读了大部分可用的问题,但没有找到任何可以帮助回答我的问题。正如Firebase团队所建议的那样,扇出技术是确保快速数据读取的推荐方法,但却带来了数据复制的成本。我知道这个问题是主观的,取决于应用程序,但在节省成本($)和数据读取方面哪个是最好的解决方案?
对于上下文,我正在构建一个非营利性市场应用程序,因此我需要在节省成本($)和快速数据读取之间平衡应用最佳解决方案。
另一方面,读取两次(带宽)与更大的存储空间?哪一个更具成本效益?
答案 0 :(得分:8)
我首先要说,理想情况下,您在Firebase中阅读或同步只需要的内容。因此,您的数据库查询会被其他过滤器耦合,以使查询具体如下可能。如果你可以指出,那么无论如何你将构建一个非常智能的数据结构,这将是具有成本效益的。
现在真正的辩论 Fan-Out技术或只是发布对节点的引用。 因为我个人更喜欢Fan-Out并且也成功使用它因此我将仅参考该技术,这也将为您提供使我不想使用保留参考的原因的指示。
如果你的目标是那种应用程序性能,那么你清楚地看到 扇出是明显的赢家 而不是其他技术由于以下原因。
所以,我会建议您选择FAN-OUT技术,因为当您看到数据过滤,索引和安全规则等其他因素时,它会更快,更具成本效益。是的,它有一个很高的存储使用价格。但是当你没有满意的用户时,更少的存储意味着什么呢?仍然归结为个人偏好。但我已经分享了我的经验和想法,希望它能帮助你做出正确的决定。
我鼓励您完成this并更深入地了解无SQL数据建模
请告诉我此信息是否对您有所帮助。