Firebase性能:每个节点有多少个孩子?

时间:2016-09-26 21:37:58

标签: firebase firebase-realtime-database

如果一个节点有1亿个孩子,那么如果我:

会对性能产生影响

a)查询,但限制为10个结果

b)只观看其中一个孩子

我可以将数据分成多个父母,但在我的情况下,我会有一个对孩子的引用,所以可以直接查找(这降低了复杂性)。如果存在影响,在性能下降之前每个方案的最大数量是多少?

1 个答案:

答案 0 :(得分:15)

如果一个节点有那么多孩子,那么以任何方式访问该节点都是一个问题的处方。访问一个孩子永远不是问题。

查询节点的子集子集仍然要求数据库考虑每个子节点。如果您要求1亿个项目中的最后10个,那么您要求数据库考虑您显然不感兴趣的999,999,990个项目。

如果不对数据大小,订购标准等进行更具体的描述,就不可能说出最大值是什么。但说实话,即使这样,你可能得到的最好的是具有巨大差异的价值。这可能会随着时间而改变。

您在Firebase(以及大多数NoSQL解决方案)中的最佳方法是以适合您的应用使用该数据的方式对数据进行建模。例如:如果您需要向用户显示最新的10个项目,请将这些最新的10个项目的(密钥)存储在单独的列表中。

items
    -K........0
        title: "Firebase Performance: How many children per node?"
        body: "If a node has 100 million children, will there be a performance impact if I:..."
    -K........1
        title: "Firebase 3x method won't working in real device but worked in simulator swift 3.0"
        body: "Hi we are working with google firebase 3x version and we faced..."
    .
    .
    .
    -K999999998
    -K999999999
recent
    -K999999990: true
    -K999999991: true
    -K999999992: true
    -K999999993: true
    -K999999994: true
    -K999999995: true
    -K999999996: true
    -K999999997: true
    -K999999998: true
    -K999999999: true

我不确定我是否在那里得到了正确数量的9,但我希望你明白这一点。