【发布时间】:2020-06-25 01:56:15
【问题描述】:
如果您索引的字段在 集合中的文档,例如时间戳,然后是最大写入 对集合的速率是每秒 500 次写入。如果不查询 基于具有连续值的字段,您可以豁免该字段 从索引绕过这个限制。
Firestore 何时关心字段是否按顺序更改而不是简单更改?
【问题讨论】:
如果您索引的字段在 集合中的文档,例如时间戳,然后是最大写入 对集合的速率是每秒 500 次写入。如果不查询 基于具有连续值的字段,您可以豁免该字段 从索引绕过这个限制。
Firestore 何时关心字段是否按顺序更改而不是简单更改?
【问题讨论】:
时间戳仍然是连续的,只是不连续。这同样适用于按字母顺序排列的值,以及几乎任何可合理预测的生成值。
索引中的顺序数据也可能在物理上非常接近地写入存储介质,这就是它导致写入吞吐量限制的原因。
【讨论】:
关于您问题的为什么部分,Firestore documentation 提供了很好的解释:
Cloud Firestore 将按字典顺序关闭的索引条目放在同一个平板电脑上。如果平板电脑中的索引值过于靠近,例如时间戳字段,Cloud Firestore 无法有效地将平板电脑拆分为更小的平板电脑。这会产生一个热点,其中单个平板电脑接收到过多的流量,并且对热点的读写操作变得更慢。
【讨论】: