Firestore中的数据结构如何影响大型数据集中查询的优化、速度和成本



此处为的数据结构

+Nike
--Day1
timestamp: 11-11-2020
+Mentions
--001
timestamp: 11-11-2020
--002
timestamp: 11-11-2020
--Day2
timestamp: 11-12-2020
+Mentions
--001
timestamp: 11-12-2020
--002
timestamp: 11-12-2020

如果我放弃层次结构,只将所有提及的内容转储到一个集合中,而不按日期进行细分,那么查询成本是否很高,因为它还必须搜索每个提及的时间戳?

+Nike
--001
timestamp: 11-11-2020
--002
timestamp: 11-11-2020
--003
timestamp: 11-12-2020
--004
timestamp: 11-12-2020

使用Firestore时,实际上不需要您凭直觉希望查询更少的数据Firestore查询性能不取决于查询的数据量,而仅取决于检索的数据量因此,在每次提及中重复一天是正确的方法,而且很常见。

我建议每天仍保留提及次数,但原因不同:写入性能。在Firestore上,您主要受到写性能限制的影响,特别是Firestore需要更新的索引。通过在多个子集合中分割提及,您将减少Firestore需要更新的联合索引的数量,尽管需要集合组查询确实意味着您在所有需要更新的提及中至少有一个索引。

最新更新