Maison  >  Questions et réponses  >  le corps du texte

firestore : Est-il plus rapide de récupérer des documents par identifiant ou par requête ?

Ma collection de documents a un identifiant (bien sûr), mais possède également un champ qui contient le même identifiant. Question : Est-il plus rapide de récupérer ce document par identifiant

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

ou sur demande

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

Je viens de refactoriser mon code de fonction. J'avais l'habitude d'utiliser des requêtes, mais maintenant j'utilise directement les identifiants des documents de la collection. Mais j’ai l’impression que cette approche directe prend beaucoup plus de temps. Je me demande juste si ce n'est qu'une impression...

P粉291886842P粉291886842401 Il y a quelques jours409

répondre à tous(1)je répondrai

  • P粉232409069

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

    Théoriquement, il n'y a aucune différence de performances entre les deux. Les requêtes Firestore évoluent en fonction du nombre de documents renvoyés par la requête. Si les deux requêtes renvoient 1 document, elles doivent alors effectuer la même opération. Ils utilisent essentiellement des index pour trouver des valeurs uniques.

    Voir : Les requêtes évoluent en fonction de la taille de l'ensemble de résultats, et non de la taille de l'ensemble de données

    Si vous souhaitez vraiment effectuer un microbenchmark, vous devez effectuer vos propres tests pour savoir lequel est le plus rapide. Mais je pense que vous allez passer beaucoup de temps à optimiser quelque chose qui n'a pas besoin d'être optimisé. Vous pouvez décider vous-même si cela vaut la peine.

    Mon conseil avisé : vous devriez vous soucier de la clarté du code, pas des performances. Lequel vous semble le plus logique lorsque vous le lisez dans le contexte du programme ? En règle générale, une seule extraction d'une référence de document est plus courte et plus facile à lire, et il n'est pas nécessaire d'examiner un ensemble de résultats de document lorsque vous n'attendez qu'un seul document, mais votre opinion peut varier.

    répondre
    0
  • Annulerrépondre