首页 文章

Firestore查询/性能

提问于
浏览
2

我是firestore的新手,我对定价/浅层结构感到困惑 . 想知道查询我拥有的一组数据的更好方法 .

我的数据结构如下:

  • (a)集合[productList] - 主要集合

  • (b)document [storeId] - 100个范围内的多个文档

  • (c)collection [itemList] - 子集合

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

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

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

  • 如果我更改为该数据结构,价格会有所不同,这对定价和性能会更好 .

  • 定价(读取)是否取决于100k的整个集合,或仅取决于where子句查询后返回的20或30个值 .

1 回答

  • 2

    您只需为从查询或获取操作返回的文档或使用偏移时跳过的文档付费(请参阅“managing large result sets”下) . 如果集合中有大量未读的附加文档,则不会向您收取额外费用 . 但随着时间的推移,你就是charged for that overall storage .

    如果您尝试最小化成本,则应尽量减少文档读取和总体存储的总数 . 但是,满足此要求的数据库结构可能不是最适合您的应用程序的数据库结构 . 您可能需要在查询成本,整体存储成本,速度和自身便利之间进行权衡 . 只有您能够估算这些成本,除非您与可以帮助您进行估算的人共享数据库的全部内容 .

相关问题