sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB $slice (stránkování vestavěného pole)

Takže řeknu, že byste měli změnit schéma tak, aby komentáře zanechávaly jako samostatné dokumenty, protože se jedná o nesvázané pole a vaše dotazy budou efektivnější. Vysvětlím to.

Když přidáte vložené dokumenty do pole, které nemá pevnou velikost, mongoDB bude potenciálně potřebovat přesunout dokument, jak roste, změnit faktor výplně a způsobit fragmentaci (faktor výplně je odhadem ze strany mongodb, jak velký bude váš dokument růst, předem alokuje více prostoru pro tento případ).

Jste také omezeni na 16 MB pro dokument, takže si představte, že pokud získáte šíleně populární vlákno nebo se rozhodnete rozšířit komentáře o další metadata, je možné, že tuto bariéru prolomíte. Načítání velkého dokumentu je také drahé a časově náročné.

Obecně jsou vložené dokumenty skvělé, pokud se nejedná o nevázaná pole. Takže udržovat seznam 10 nejlepších komentářů bude fungovat skvěle, ale udržet si 1000+ komentářů je špatné.

Pod

je několik dobrých prezentací

http://www.10gen.com/presentations /mongodb-berlin/2012/10-key-performance-indicators http://www.10gen.com/presentations/mongosv -2011/schema-design-by-example

Myslím, že se brzy objeví další práce na návrhu schématu, která bude z dlouhodobého hlediska užitečnější. Myslím, že je to nejtěžší být upřímný. Vím, chvíli mi trvalo, než jsem si uvědomil rozdíly oproti relačním modelům.




  1. Zkontrolujte aktuální počet připojení k MongoDb

  2. Jaké metody agregačního kurzoru jsou podporovány ovladači Nodejs?

  3. Schéma Mongoose s vnořeným volitelným objektem

  4. Jak připojit Robomongo k MongoDB