我收藏的文档有一个 id(当然),但也有一个保存相同 id 的字段。 问题:通过 id 检索该文档是否更快
collection.doc(id).get().then(....)
或通过查询
collection.where('id', '==', id).get().then(...)
我刚刚重构了我的函数代码。我以前使用查询,但现在我直接使用集合中文档的id。但我的印象是这种直接方法需要更长的时间。我只是想知道这是否只是一个印象......
理论上来说,两者的性能没有区别。 Firestore 查询随着查询返回的文档数量而扩展。如果两个查询都返回 1 个文档,那么它们应该执行相同的操作。它们本质上都是使用索引来查找唯一值。
请参阅:查询随结果集的大小而不是数据集的大小而缩放
如果您确实想要对此进行微基准测试,您应该执行自己的测试来找出哪个更快。但我认为你会花费大量时间来优化一些不需要优化的东西。您可以自己决定这是否值得您花时间。
我固执己见的建议:您应该担心代码的清晰度,而不是担心性能。当您在程序的上下文中阅读它时,哪一个对您更有意义?通常,文档参考的单个获取更短且更易于阅读,并且当您只期望一个文档时,不需要查看一组文档结果,但您的意见可能会有所不同。
理论上来说,两者的性能没有区别。 Firestore 查询随着查询返回的文档数量而扩展。如果两个查询都返回 1 个文档,那么它们应该执行相同的操作。它们本质上都是使用索引来查找唯一值。
请参阅:查询随结果集的大小而不是数据集的大小而缩放
如果您确实想要对此进行微基准测试,您应该执行自己的测试来找出哪个更快。但我认为你会花费大量时间来优化一些不需要优化的东西。您可以自己决定这是否值得您花时间。
我固执己见的建议:您应该担心代码的清晰度,而不是担心性能。当您在程序的上下文中阅读它时,哪一个对您更有意义?通常,文档参考的单个获取更短且更易于阅读,并且当您只期望一个文档时,不需要查看一组文档结果,但您的意见可能会有所不同。