使用大型数据集的Firebase性能
我正在testing一个项目的firebase,这个项目可能有相当多的密钥,可能是数百万。
我testing过使用节点加载几十千条logging,并且加载性能看起来不错。 但是,“FORGE”Web用户界面变得不可用的慢,如果我展开我的根节点呈现每一个logging。
Firebase不是为这个数据量devise的,还是我做错了什么?
这只是Forge UI的限制。 这还是相当不成熟的。
Firebase中的实时function不仅适用于大型数据集,而且适用于大型数据集。 实时loggingstream的事实是完美的。
与任何大型数据应用程序一样,性能也与您的实现一样好。 所以这里有一些需要记住的大数据集。
分化,分化,分化
如果一个数据集将被迭代,并且它的logging可以以数千计算,那么将其存储在自己的path中。
这对迭代大数据集是不利的:
/users/uid /users/uid/profile /users/uid/chat_messages /users/uid/groups /users/uid/audit_record
这对于迭代大数据集是很好的:
/user_profiles/uid /user_chat_messages/uid /user_groups/uid /user_audit_records/uid
避免在大型数据集上“价值”
使用child_added
因为value
必须将整个logging集加载到客户端。
留意儿童的隐藏value
操作
当你打电话给child_added
,你实际上是在每个孩子的logging上调用value
。 所以如果这些孩子包含大的列表,他们将不得不加载所有的数据返回。 因此,上面的DENORMALIZE部分。