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

MongoDB peut-il fonctionner lorsque la taille de la base de données est supérieure à la RAM ?

Oui ça peut marcher. À quel niveau il fonctionnera est plus un "Ça dépend"

L'essentiel est de s'assurer que votre ensemble de travail peut tenir dans la RAM. Donc, si vous avez 16 Go de RAM et 20 Go de base de données (index inclus), par exemple, si vous n'avez besoin d'accéder qu'à la moitié de toutes les données car l'autre moitié est plus ancienne / n'a jamais été interrogée, tout ira bien car seulement la moitié de votre la base de données doit être en RAM (10 Go).

Le jeu de travail est la clé ici. Par exemple, si vous avez une application de journalisation en sortie vers MongoDB, il se peut que votre ensemble de travail soit la quantité de données (et d'index) des 3 derniers mois et que toutes les données antérieures auxquelles vous n'avez pas accès.

Lorsque votre ensemble de travail dépasse la quantité de RAM, il continuera à fonctionner mais avec des performances sensiblement dégradées car les choses devront alors constamment aller sur le disque qui est beaucoup moins performant. Si vous êtes dans cette situation de dépassement des contraintes de RAM sur une machine, c'est là que le sharding entre en jeu - vous pouvez donc équilibrer les données sur un certain nombre de machines, augmentant ainsi la quantité de données pouvant être conservées dans la RAM.