MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Bestes MongoDB-Schema für Twitter-Klon?

Dies ist kein ideales Schema für einen Twitter-Klon. Das Hauptproblem besteht darin, dass "Posts" ein ständig wachsendes Array ist, was bedeutet, dass Mongo Ihr riesiges Dokument alle paar Posts verschieben muss, weil ihm die Dokumentenauffüllung ausgeht. Zusätzlich gibt es eine feste Größenbeschränkung (16 MB) für Dokumente, was dieses Schema bestenfalls restriktiv macht.

Das ideale Schema hängt davon ab, ob Sie die Last von Twitter erwarten oder nicht. Das "perfekte" Mongodb-Schema in Bezug auf Wartbarkeit und Benutzerfreundlichkeit ist nicht dasselbe wie das, das ich für etwas mit dem Durchsatz von Twitter verwenden würde. Im ersten Fall würde ich zum Beispiel eine Beitragssammlung mit einem Dokument pro Beitrag verwenden. Im Szenario mit hohem Durchsatz würde ich anfangen, Bucket-Dokumente für kleine Gruppen von Posts zu erstellen (z. B. eines pro Seite „mehr bekommen“). Darüber hinaus müssten Sie im Szenario mit hohem Durchsatz die Zeitleiste des Followers in separaten Zeitleistendokumenten der Benutzer auf dem neuesten Stand halten, während Sie sie in Szenarien mit niedrigem Durchsatz einfach abfragen können.