MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Kann MongoDB funktionieren, wenn die Größe der Datenbank größer als der Arbeitsspeicher ist?

Ja, es kann funktionieren. Auf welchem ​​Niveau es performt, ist eher ein „Es kommt darauf an“

Das Wichtigste ist, Ihr Working Set sicherzustellen kann in RAM passen. Wenn Sie also beispielsweise 16 GB RAM und 20 GB Datenbank (inkl. Indizes) haben und nur auf die Hälfte aller Daten zugreifen müssen, da die andere Hälfte älter ist/nie tatsächlich abgefragt wird, dann reicht Ihnen nur die Hälfte Ihrer Daten Datenbank muss sich im RAM (10 GB) befinden.

Der Arbeitssatz ist hier der Schlüssel. Wenn Sie beispielsweise eine Protokollierungsanwendung haben, die an MongoDB ausgibt, kann es sein, dass Ihr Arbeitssatz die Datenmenge (und Indizes) der letzten 3 Monate ist und dass Sie auf alle Daten davor nicht zugreifen.

Wenn Ihr Arbeitssatz die Menge an RAM überschreitet, wird es weiterarbeiten, aber mit merklich verminderter Leistung, da die Dinge dann ständig auf die Festplatte gehen müssen, die weitaus weniger leistungsfähig ist. Wenn Sie in dieser Situation sind, die RAM-Beschränkungen auf einem Computer zu überschreiten, dann kommt hier Sharding ins Spiel – so können Sie die Daten auf mehrere Computer verteilen und so die Datenmenge erhöhen, die im RAM gehalten werden kann.