新Firestore的限制说明

Dar*_*ron 8 limits firebase google-cloud-firestore

因此,在Firebase新Firestore产品的限制部分(https://firebase.google.com/docs/firestore/quotas)中,它说:

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

我们对实际需要的东西感到很困惑.

如果我们有一个被称为users1000万个条目的根级集合,这个速率会以这种方式影响这个集合,所以只有500个用户可以在任何给定的秒内更新他们的数据吗?

任何人都可以澄清吗?

Gil*_*ert 7

对困惑感到抱歉; 一个例子可能有帮助.

如果您的用户文档包含上次更新的时间戳,并且您在该时间戳上编制索引,则每次新写入将最终聚集在相同的值(现在),在索引中创建热点.

类似地,如果您以某种方式为用户分配了一个顺序值,如一个排队的位置或类似的东西,这也会创建一个热点.

顺便提一下,这就是生成文档ID是随机字符串的原因.这会在主键索引上均匀分配写入.

如果您避免使用这些类型的模式,那么天空是极限,尽管在测试期间您已达到数据库范围的限制.

  • 那么,当这10K个对象在0-1000'000'000之间随机编号时,情况又如何呢?在不到一秒钟的时间内更新所有索引是否意味着触摸所有索引位置,这意味着热点?这是否有效地意味着如果其中有500多个对象,则不应在不到一秒钟的时间内更新集合中的所有对象,还是我弄错了索引和热点背后的想法?我相信这也值得在文档中进行详细说明。 (3认同)
  • 这有点模糊,因为尚不知道如何建立索引和创建热点。此外,对象中的任何数字字段都可以视为“顺序”字段,因为您可以按该字段进行排序。我相信顺序表示的是在一段时间内更新/写入对象的字段。假设我有10000个对象,并且它们都有一个数字字段,“枚举”了所有对象-从0到9999。假设我以随机顺序创建了这些对象,因此应该没有热点,但是如果我随机创建所有10K,超过1秒会产生热点吗? (2认同)

Ale*_*tel 6

快速补充说明:目前所有属性都默认为索引编制,因此如果您有最后更新的时间戳,则必须将其编入索引 - 因此您将无法避免热点.

索引禁用将在未来发布.