使用 CollectionGroupQuery 的子集合中的 Firestore 写入限制

Posted

技术标签:

【中文标题】使用 CollectionGroupQuery 的子集合中的 Firestore 写入限制【英文标题】:Firestore Write Limits in Subcollections with CollectionGroupQuery 【发布时间】:2019-10-29 13:17:49 【问题描述】:

跟进我之前的帖子,了解单个集合的写入限制

Firestore 500+ Writes Per Second to One Collection

这个 500ps 限制如何应用于最近引入的 CollectionGroups? (顺便说一句...Todd didn't get a loud enough cheer here!:P)

https://firebase.google.com/docs/firestore/query-data/queries#collection-group-query

Firestore 限制仍然只引用单个集合:

https://firebase.google.com/docs/firestore/quotas

集合的最大写入速率,其中文档在索引字段中包含顺序值:每秒 500 个

Dan McGrath 在我之前的帖子中说这是因为Individual Collections

的索引

将受限于单个服务器可以处理的负载

示例数据模型:

收藏:用户 文档:userId1 子集合:帖子 Doc:postId1(postId、img、标题、日期的字段)

如果我为posts 创建一个CollectionGroup 索引(查询所有称为“帖子”的子集合)- 通过date

订购DESCENDING

我对所有这些子集合的写入限制会从每秒 10k 降低到每秒 500 吗? CollectionGroup 索引是如何处理的?由同一个“个人服务器”?

如果是这样...这基本上意味着将这些“帖子”放在单独的子集合中而不是单独的根级别集合中从写入限制的角度来看没有任何好处。

【问题讨论】:

Firebase 团队有任何见解吗??? 【参考方案1】:

在 Firebase Google Group 上提问 - 答案是肯定的,如果您开始使用 CollectionGroupQuery 为子集合编制索引,则子集合的每秒写入次数限制为 500 次

https://groups.google.com/forum/#!topic/firebase-talk/7Raajf8KWg4

与 Cloud Firestore 的许多限制一样,此限制基于我们对数据编制索引和保持高度一致性的能力。所以是的:如果您在“日期”上有一个 CollectionGroup 索引,并且您的日期字段具有连续值,则“帖子”文档的更新写入速率不应超过 500QPS。

【讨论】:

以上是关于使用 CollectionGroupQuery 的子集合中的 Firestore 写入限制的主要内容,如果未能解决你的问题,请参考以下文章

使用“使用严格”作为“使用强”的备份

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

Sqlmap的使用

Kettle java脚本组件的使用说明(简单使用升级使用)

PageHelp的使用getParameter的使用zpage-nav的使用QRcode的使用wxpay微信支付的使用jackson-xml数据的转换

hbs使用手册