29 votes

Performance de Firebase avec de grands ensembles de données

Je teste firebase pour un projet qui pourrait avoir un nombre raisonnablement élevé de clés, potentiellement des millions.

J'ai testé le chargement de quelques 10k d'enregistrements en utilisant node, et les performances de chargement semblent bonnes. Cependant, l'interface Web "FORGE" devient inutilement lente et rend chaque enregistrement si je développe mon nœud racine.

Est-ce que Firebase n'est pas conçu pour ce volume de données, ou est-ce que je fais quelque chose de mal ?

76voto

Kato Points 12210

Il s'agit simplement des limites de l'interface utilisateur de Forge. Elle est encore assez rudimentaire.

Les fonctions en temps réel de Firebase sont non seulement adaptées, mais aussi conçues pour les grands ensembles de données. Le fait que les enregistrements soient diffusés en temps réel est parfait pour cela.

Comme pour toute application de données volumineuses, les performances dépendent de la mise en œuvre. Voici donc quelques problèmes à garder à l'esprit avec les grands ensembles de données.

DÉNORMALISER, DÉNORMALISER, DÉNORMALISER

Si un ensemble de données est appelé à être itéré et que ses enregistrements se comptent en milliers, stockez-le dans son propre chemin d'accès.

Ce n'est pas une bonne chose pour l'itération de grands ensembles de données :

/users/uid
/users/uid/profile
/users/uid/chat_messages
/users/uid/groups
/users/uid/audit_record

Cela permet d'itérer sur de grands ensembles de données :

/user_profiles/uid
/user_chat_messages/uid
/user_groups/uid
/user_audit_records/uid

Éviter la "valeur" des grands ensembles de données

Utiliser le child_added desde value doit charger l'ensemble des enregistrements pour le client.

Attention à la présence d'éléments cachés value opérations sur les enfants

Lorsque vous appelez child_added vous appelez en fait value sur chaque enregistrement d'enfant. Par conséquent, si ces enfants contiennent de grandes listes, ils devront charger toutes ces données pour les renvoyer. D'où la section DENORMALIZE ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X