因此,在 Firebase 的新 Firestore 产品的限制部分 ( https://firebase.google.com/docs/firestore/quotas ) 中,它说:
文档在索引字段中包含顺序值的集合的最大写入速率:每秒 500
我们对这实际上意味着什么感到很困惑。
如果我们有一个根级集合users
,其中包含 1000 万个条目,那么这个速率是否会以这种方式影响这个集合,所以在任何给定的秒内只有 500 个用户可以更新他们的数据?
谁能澄清一下?
因此,在 Firebase 的新 Firestore 产品的限制部分 ( https://firebase.google.com/docs/firestore/quotas ) 中,它说:
文档在索引字段中包含顺序值的集合的最大写入速率:每秒 500
我们对这实际上意味着什么感到很困惑。
如果我们有一个根级集合users
,其中包含 1000 万个条目,那么这个速率是否会以这种方式影响这个集合,所以在任何给定的秒内只有 500 个用户可以更新他们的数据?
谁能澄清一下?
对困惑感到抱歉; 一个例子可能会有所帮助。
如果您的用户文档包含最后更新的时间戳,并且您在该时间戳上建立索引,那么每次新写入最终都会围绕相同的值(现在)在索引中创建一个热点。
同样,如果您以某种方式为用户分配了一个顺序值,例如排队的位置或类似的东西,这也会创建一个热点。
顺便说一句,这就是生成的文档 ID 是随机字符串的原因。这会平均分配主键索引上的写入。
如果您避免使用这些类型的模式,那么天空就是极限,尽管在测试期间您会达到数据库范围的限制。
一个快速的附加说明:目前默认情况下所有属性都被索引,所以如果你有一个最后更新的时间戳,它必然会被索引 - 所以你将无法避免热点。
不过,索引禁用将在未来可用。