代码之家  ›  专栏  ›  技术社区  ›  vv619

Firestore查询/性能

  •  3
  • vv619  · 技术社区  · 7 年前

    我是firestore的新手,我是。与定价/浅层结构混淆。想知道查询一组数据的更好方法。

    我的数据结构如下:

    • (a) 集合[产品列表]-主集合

    • (b) 文档[存储ID]-100范围内的多个文档

    • (c) 集合[项目列表]-子集合

    • (d) 文档[项目]-35 k到45k范围内的多个文档

    我的查询通常使用where子句从(d)集合中获取数据。

    • 最好删除子集合并将其全部放在(b)文档中,并保留一个额外的ref参数用于查询。保持不变会将(b)文档的值增加到100k。

    • 如果我更改该数据结构,定价是否会有所不同,这对定价和性能都会更好。

      • 定价(读取)是否取决于整组100k,还是仅取决于where子句查询后返回的20或30个值。
    1 回复  |  直到 7 年前
        1
  •  4
  •   Doug Stevenson    7 年前

    仅对查询或get操作返回的文档或使用偏移量时跳过的文档收费(请参见下的“ managing large result sets “”。您的查询不会因为集合中有大量未读的其他文档而收取额外费用。但是 charged for that overall storage 随着时间的推移。

    如果要尽量降低成本,则应尽量减少文档读取的总数和总体存储。然而,满足这一点的数据库结构可能不是应用程序最有效的结构。您可能需要在查询成本、总体存储成本、速度和您自己的便利性之间进行权衡。只有您才能估计这些成本,除非您将数据库的全部内容与能够帮助您进行估计的人共享。