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

Cal*_*alM 14 firebase firebase-realtime-database

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

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

b)仅观看其中一个孩子

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

Fra*_*len 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
Run Code Online (Sandbox Code Playgroud)

我不确定我是否在那里得到了正确数量的9,但我希望你能得到这个想法.

  • 而"只看一个孩子"就像`ref.child(childId).on('value',...)一样简单. (2认同)