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

Qu'est-ce que cela signifie d'adapter le jeu de travail à la RAM pour MongoDB ?

Le "jeu de travail" correspond essentiellement à la quantité de données ET d'index qui seront actifs/utilisés par votre système.

Par exemple, supposons que vous disposiez d'un an de données. Pour plus de simplicité, chaque mois se rapporte à 1 Go de données, soit 12 Go au total, et pour couvrir la valeur de données de chaque mois, vous disposez de 1 Go d'index totalisant à nouveau 12 Go pour l'année.

Si vous accédez toujours aux données des 12 derniers mois, votre plage de travail est :12 Go (données) + 12 Go (index) =24 Go.

Cependant, si vous n'accédez en réalité qu'aux données des 3 derniers mois, votre ensemble de travail est de :3 Go (données) + 3 Go (index) =6 Go. Dans ce scénario, si vous disposiez de 8 Go de RAM et que vous commenciez à accéder régulièrement aux données des 6 derniers mois, votre ensemble de travail commencerait à dépasser votre RAM disponible et aurait un impact sur les performances.

Mais généralement, si vous disposez de suffisamment de RAM pour couvrir la quantité de données/d'index auxquels vous vous attendez à accéder fréquemment, tout ira bien.

Modifier :réponse à la question dans les commentaires
Je ne suis pas sûr d'avoir bien suivi, mais je vais essayer de répondre. Premièrement, le calcul de l'ensemble de travail est un "chiffre approximatif". Deuxièmement, si vous avez un index (par exemple) de 1 Go sur user_id, seule la partie de cet index couramment consultée doit être en RAM (par exemple, supposons que 50 % des utilisateurs soient inactifs, alors 0,5 Go de l'index sera plus fréquemment requis/nécessaire dans la RAM). En général, plus vous avez de RAM, mieux c'est, d'autant plus que l'ensemble de travail est susceptible de croître avec le temps en raison d'une utilisation accrue. C'est là que le sharding entre en jeu - divisez les données sur plusieurs nœuds et vous pouvez évoluer de manière rentable. Votre ensemble de travail est ensuite divisé sur plusieurs machines, ce qui signifie que le plus peut être conservé dans la RAM. Besoin de plus de RAM ? Ajoutez une autre machine à partager.