MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comprendre la limite de taille du document MongoDB BSON

Tout d'abord, cela est en fait augmenté dans la prochaine version à 8MB ou 16MB ... mais je pense que pour mettre cela en perspective, Eliot de 10gen (qui a développé MongoDB) le dit mieux :

MODIF : La taille a été officiellement "augmentée" à 16MB

Ainsi, sur votre exemple de blog, 4 Mo représentent en fait beaucoup.>

Si votre article de blog est aussi long avec autant de commentaires, pour ma part, je ne vais pas le lire :)

Pour les rétroliens, si vous leur dédiez 1 Mo, vous pourriez facilement en avoir plus de 10 000 (probablement plus près de 20 000)

Donc, sauf pour les situations vraiment bizarres, cela fonctionnera très bien. Et dans le cas exceptionnel ou le spam, je ne pense vraiment pas que vous voudriez un objet de 20 Mo de toute façon. Je pense que limiter les rétroliens à environ 15 000 000 a beaucoup de sens, peu importe la performance. Ou au moins un boîtier spécial si jamais ça arrive.

-Eliot

Je pense que vous auriez du mal à atteindre la limite... et avec le temps, si vous mettez à niveau... vous aurez de moins en moins de soucis.

Le point principal de la limite est de ne pas utiliser toute la RAM de votre serveur (puisque vous devez charger tous les MB s du document dans la RAM lorsque vous l'interrogez.)

La limite est donc de quelques % de la RAM normale utilisable sur un système commun... qui continuera de croître d'année en année.

Remarque sur le stockage de fichiers dans MongoDB

Si vous avez besoin de stocker des documents (ou des fichiers) supérieurs à 16MB vous pouvez utiliser l'API GridFS qui divisera automatiquement les données en segments et vous les retransmettra (évitant ainsi le problème des limites de taille/RAM.)

Au lieu de stocker un fichier dans un seul document, GridFS divise le fichier en parties, ou morceaux, et stocke chaque morceau dans un document séparé.

GridFS utilise deux collections pour stocker les fichiers. Une collection stocke les morceaux de fichiers et l'autre stocke les métadonnées des fichiers.

Vous pouvez utiliser cette méthode pour stocker des images, des fichiers, des vidéos, etc. dans la base de données comme vous le feriez dans une base de données SQL. Je l'ai même utilisé pour stocker des fichiers vidéo de plusieurs gigaoctets.