Heim  >  Fragen und Antworten  >  Hauptteil

Firestore: Ist es schneller, Dokumente anhand der ID oder per Abfrage abzurufen?

Meine Dokumentensammlung hat (natürlich) eine ID, aber auch ein Feld, das dieselbe ID enthält. Frage: Ist es schneller, dieses Dokument anhand der ID abzurufen?

collection.doc(id).get().then(....)

oder auf Anfrage

collection.where('id', '==', id).get().then(...)

Ich habe gerade meinen Funktionscode überarbeitet. Früher habe ich Abfragen verwendet, aber jetzt verwende ich direkt die IDs der Dokumente in der Sammlung. Aber mein Eindruck ist, dass dieser direkte Ansatz viel länger dauert. Ich frage mich nur, ob das nur ein Eindruck ist...

P粉291886842P粉291886842401 Tage vor408

Antworte allen(1)Ich werde antworten

  • P粉232409069

    P粉2324090692023-09-15 00:02:17

    理论上来说,两者的性能没有区别。 Firestore 查询随着查询返回的文档数量而扩展。如果两个查询都返回 1 个文档,那么它们应该执行相同的操作。它们本质上都是使用索引来查找唯一值。

    请参阅:查询随结果集的大小而不是数据集的大小而缩放

    如果您确实想要对此进行微基准测试,您应该执行自己的测试来找出哪个更快。但我认为你会花费大量时间来优化一些不需要优化的东西。您可以自己决定这是否值得您花时间。

    我固执己见的建议:您应该担心代码的清晰度,而不是担心性能。当您在程序的上下文中阅读它时,哪一个对您更有意义?通常,文档参考的单个获取更短且更易于阅读,并且当您只期望一个文档时,不需要查看一组文档结果,但您的意见可能会有所不同。

    Antwort
    0
  • StornierenAntwort