MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Il miglior schema MongoDB per il clone di Twitter?

Questo non è uno schema ideale per un clone di Twitter. Il problema principale è che i "post" sono un array in continua crescita, il che significa che mongo dovrà spostare il tuo enorme documento ogni pochi post perché ha esaurito il riempimento del documento. Inoltre esiste un limite di dimensioni rigide (16 MB) per i documenti che rende questo schema nella migliore delle ipotesi restrittivo.

Lo schema ideale dipende dal fatto che ti aspetti o meno il carico di Twitter. Lo schema mongodb "perfetto" in termini di manutenibilità e facilità d'uso non è lo stesso di quello che userei per qualcosa con il throughput di Twitter. Ad esempio, nel primo caso userei una raccolta di post con un documento per post. Nello scenario ad alto rendimento inizierei a creare documenti bucket per piccoli gruppi di post (ad esempio, uno per pagina "ottieni di più"). Inoltre, nello scenario a velocità effettiva elevata dovresti mantenere aggiornata la sequenza temporale del follower in documenti della sequenza temporale utente separati mentre negli scenari a velocità effettiva bassa puoi semplicemente interrogarli.