【发布时间】:2019-07-15 09:51:42
【问题描述】:
我们正在 dart 中开发一个应用程序,其中我们需要一次获取超过 50K 行(在应用程序加载时执行),然后数据将用于应用程序的其他部分以进行进一步计算。我们正在使用 Firebase 实时数据库,并且面临一些严重的性能问题。
目前加载 50K 行大约需要 40 秒(当前使用免费数据库版本,不确定是否是这个原因),但我们也观察到,当多个用户使用该应用程序时,开始需要大约 1 分钟20 秒加载 50K 行,峰值达到 100%。
您能否建议我们如何提高 Firebase 实时数据库的性能?
如果我将数据分成两个集合但将其保存在同一个 JSON 文件中,会有帮助吗?
可能是因为我们正在使用当前免费的数据库版本进行测试?
我们已尝试在 1 个关键字段的“规则”部分创建索引,但这并没有太大帮助。有什么办法可以改进吗?
【问题讨论】:
-
嗨,Ammar - 我查看了那篇文章,但索引并没有太大帮助,我们还将使用性能监控来监控性能。
-
应用来自少数用户的负载应该不会对查询的性能产生太大影响。如果没有具体的基准,也没有了解用户和数据库之间的网络连接质量,就真的无法说出速度变慢的原因。如果查询中的数据量增加,您可以预期查询时间会增加,因为它只需要通过网络移动更多数据。
-
感谢道格的评论!我不希望很多用户一次访问数据库,大约有 15 个用户,每个用户将查询一次以在应用程序中进行 40K 到 50K 行的初始加载。所有 15 个用户将点击 JSON 树中的不同节点,如果我将每个集合(50K 行)拆分到单个项目中的单独数据库中,这可能有效但不想这样做。
标签: performance firebase-realtime-database flutter dart