首页 > 解决方案 > Firestore 集合具有时间戳字段时的索引查询

问题描述

我有一个 Firestore 项目,其中我的收藏feed有一个时间戳字段createdDate。当我根据创建时间和其他字段查询提要时,我创建了一个Composite Index包含时间戳字段。

索引最佳实践文档中提到了以下内容。

如果您索引一个在集合中的文档之间按顺序增加或减少的字段(如时间戳),则对集合的最大写入速率为每秒 500 次写入。如果您不根据具有顺序值的字段进行查询,则可以使该字段免于索引以绕过此限制。

由于我已经在使用时间戳字段Composite Index,因此我可以将该字段从Automatic Index Settings. Composite Index这将绕过集合中每秒 500 次写入的限制,还是在使用该字段时仍将应用它。请帮助我理解这一点。

标签: firebaseindexinggoogle-cloud-firestorecomposite-index

解决方案


限制来自集合中任何索引中存在热点。虽然 Firestore 可以并行更新所有索引,但其吞吐量受到最慢索引的限制。从一个索引中删除热点,但将其保留在另一个索引上,意味着集合的写入吞吐量不会增加。

请注意,这不是硬编码限制,而是来自必须跨多个数据中心更新集群文件的物理限制。


推荐阅读