我如何知道对文档集合上的时间戳字段进行索引是否会导致问题



我在Firestore文档中看到,对单调递增的值进行索引是个坏主意,因为这会增加延迟。在我的应用程序中,我想根据unix时间查询帖子,unix时间是一个倍数,这个数字会随着时间的推移而增加,但在我的情况下,这并不是完全单调的,因为人们不会每秒都在发帖,此外,我认为我的应用不会超过400万用户。有专业人士认为这对我来说会是个问题吗

应该没有问题。只需确保将其存储为数字,而不是字符串。否则,排序将无法按预期进行。

这正是Firestore文档警告您的问题。您的数据库代码将产生"0"的成本;热点";在索引上按比例显示时间戳。具体来说,从链接的文档来看:

以非常高的速率创建具有单调递增字段(如时间戳(的新文档。

数字不必是纯粹单调的。热点发生在用于分割索引的范围上。文档并没有告诉你这些范围的预期,因为随着索引获得更多文档,它们可能会随着时间的推移而变化。

同样来自文件:

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

例如,在具有高写入率的物联网用例中,包含具有时间戳字段的文档的集合可能接近每秒500次写入的限制。

如果您没有快速添加新文档的情况,这不是近期的问题。但您应该意识到,它并不像读取那样扩展,查询将根据该索引进行扩展。请注意,并发用户的数量根本不是问题所在,而是每秒添加到索引碎片中的文档数量,无论有多少人导致了这种行为。

相关内容

  • 没有找到相关文章

最新更新