如何在FireBase数据库中插入1亿个条目而不将自己绘制到角落

时间:2016-10-26 09:08:56

标签: data-structures firebase-realtime-database

我正在学习并试图了解如何针对我的用例优化我的FireBase数据库。

查看下面的代码:让我们说US/STREET_ADDRESS推送了1.5亿条(美国的街道地址数),我想对"path":键进行排序,因为它所有地址的唯一标识符。在回应时间时,这里的表现会怎样?如果关于我的问题的此设置不可取,我如何更改US/STREET_ADDRESS

阅读fan-out,但不要因为没有多帽或其他任何东西而认为我需要它。在我的情况下,我只是想创建一个数据库,无论出于何种原因,它都可以在所有街道地址之间进行操作。

我是否应该对US/STREET_ADDRESS进行更正规化,例如将1000万个条目拆分为US/A/STREET_ADDRESSUS/B/STREET_ADDRESSUS/C/STREET_ADDRESS。这可以完成,因为下面示例代码中的"path": "US/California/Orange County/3138 E Maple Ave"是唯一的,甚至可以用作密钥而不是Firebase postsRef.push()自动密钥,此代码示例使用此密钥。但仍然会有1亿

{
  "AE": {
    "name": "United Arab Emirates"
  },
  "GB": {
    "name": "United Kingdom"
  },
  "US": {
    "name": "United States",
    "STREET_ADDRESS": {
      "-KUxrqYlItjme2v1I_W5": {
        "id": "hjg86-tg33-8hu4-yh5u",
        "path": "US/California/Orange County/3138 E Maple Ave"
      },
      "-KUJHjj7HG5gGHNNJ_T5": {
        "id": "ds86-tg12-7eu4-juw3",
        "path": "US/Florida/Tampa/104 Biscayne Ave"
      }
    }
  },
  "CH": {
    "name": "Switzerland"
  },
  "SY": {
    "name": "Syrian Arab Republic"
  },
  "TW": {
    "name": "Taiwan"
  },
  "TJ": {
    "name": "Tajikistan"
  },
  "TZ": {
    "name": "Tanzania, United Republic of"
  },
  "TH": {
    "name": "Thailand"
  }
}

0 个答案:

没有答案