firestore : Est-il plus rapide de récupérer des documents par identifiant ou par requête ?
P粉291886842
P粉291886842 2023-09-14 08:54:32
0
1
432

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粉291886842
P粉291886842

répondre à tous(1)
P粉232409069

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal