【问题标题】:How to structure the data in firebase for large database to be very FAST如何在firebase中构造数据以使大型数据库非常快
【发布时间】:2023-03-28 02:51:01
【问题描述】:

我的名字是 George,今天我在使用 firebase 时遇到了一个非常大的问题。 有人能告诉我如何在 Firebase 中为大型应用程序构建数据库吗?

我有一个来自 MongoDB 的数据库,包含 50mb 的数据,我如何构建 Firebase 数据库以便用户快速使用。

我的数据库架构是这样的。

"firebase_database" : {

  // 20000 users

  "users" : {
    "user1" : {
      "name" : "some name"
    },
    "user2" : {
      "name" : "some name"
    },
    "user3" : {
      "name" : "some name"
    }
  },


  // 500 categories

  "kategories" : {
        "category1" : {
          "name" : "some name"
        },
        "category2" : {
          "name" : "some name"
        },
        "category3" : {
          "name" : "some name"
        }
      },


  // 100.000 products

  "products" : {
    "product1" : {
      "name" : "some name",
      "product_category" : "category1"
    },
    "product2" : {
      "name" : "some name",
      "product_category" : "category2"
    },
    "product3" : {
      "name" : "some name",
      "product_category" : "category1"
    }
  }

}

【问题讨论】:

  • 这完全取决于您正在处理的功能。
  • 使用“快速”这个词充其量是模棱两可的,并且取决于您、互联网连接和许多其他变量。您的结构没有问题,老实说,50Mb 的数据并不多。您当前遇到的速度是否已发布?如果是这样,请发布您的代码 - 否则无法回答问题。
  • 不,我发现我需要在 firebase 规则中添加索引thanx @Jay 以获得您的帮助

标签: firebase firebase-realtime-database


【解决方案1】:

您正在寻找数据非规范化。简单地说,复制数据以简化和减少查询。查看来自数据库团队的 Youtube Video

可以使用 Cloud Functions 在服务器端完成数据复制。在Cloud Function Triggers for Database writes观看此视频。

基本上,当您写入数据库时​​,您的云函数会触发并将数据复制到数据库的不同部分。这将减少您客户的工作量。

数据的复制方式可以减少或简化您对数据库进行的查询。它有助于扁平化大型结构并帮助您仅下载所需的快照数据。

【讨论】:

  • Thnx James 是的,这就是我想要的。
  • @George 我认为这不会提供解决方案。您问题中发布的结构与将要获得的非规范化一样,复制数据可能无济于事。实际上,包含 100k 个项目的列表并没有那么多数据,因此查询项目或直接访问它(使用您的结构)应该是非常即时的。归根结底,这并不是对你的问题的真正答案——它肯定有很好的数据点,但不是一个具体的答案。
猜你喜欢
  • 2017-02-07
  • 2014-11-06
  • 2018-11-12
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多