Résoudre les problèmes d'évolutivité avec les systèmes de flux et de suivi dans Firestore
Dans le monde des réseaux sociaux, la création d'un système de flux et de suivi évolutif est cruciale pour garantir des performances et une expérience utilisateur optimales. Lors de l'utilisation de Firebase Realtime Database, les limitations liées aux nombreux suivis d'utilisateurs et à la récupération de toutes les publications des nouveaux abonnés posaient des défis importants. Firestore, en revanche, offre une solution plus évolutive.
Structure de base de données Firestore proposée
Pour résoudre les problèmes d'évolutivité, nous proposons un schéma qui comprend trois principaux- collections de niveaux pour :
Élimination des problèmes de mise à l'échelle
Problème 1 : Un grand nombre de publications sont ajoutées aux chronologies des abonnés
Solution : L'utilisation de collections permet à Firestore de gérer efficacement de grandes quantités de données. Même si un utilisateur a un grand nombre de followers, l'ajout d'une nouvelle publication n'affecte que la collection "userPosts" de l'utilisateur concerné. Aucune donnée supplémentaire n'est copiée dans la base de données.
Problème 2 :Les nouveaux abonnés reçoivent tous les messages des utilisateurs avec de nombreux messages
Solution : Au lieu de stockant tous les messages au même endroit, ils sont stockés dans la collection "userPosts" de chaque utilisateur. Cela permet des opérations de requête efficaces basées sur des curseurs et des limites. Au fur et à mesure que les utilisateurs font défiler leur chronologie, seuls les derniers messages sont récupérés par morceaux.
Optimisation supplémentaire
Mise à jour du 20 mai 2019 :Pour aller plus loin Pour optimiser les performances, il est avantageux de créer un document pour le flux de chaque utilisateur. Ce document peut stocker les publications récentes des utilisateurs qu'ils suivent. Cette approche minimise le besoin d'interroger plusieurs collections et permet un chargement plus rapide des chronologies des utilisateurs.
Avantages de cette structure
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!