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

Was bedeutet es, den Arbeitssatz für MongoDB in den Arbeitsspeicher einzufügen?

"Arbeitssatz" ist im Grunde die Menge an Daten UND Indizes, die von Ihrem System aktiv/verwendet werden.

Angenommen, Sie haben Daten aus einem Jahr. Der Einfachheit halber bezieht sich jeder Monat auf 1 GB Daten, was insgesamt 12 GB ergibt, und um die Datenmenge jedes Monats abzudecken, haben Sie Indizes im Wert von 1 GB, was wiederum 12 GB für das Jahr entspricht.

Wenn Sie immer auf die Daten der letzten 12 Monate zugreifen, beträgt Ihr Arbeitssatz:12 GB (Daten) + 12 GB (Indizes) =24 GB.

Wenn Sie jedoch tatsächlich nur auf die Daten der letzten 3 Monate zugreifen, beträgt Ihr Arbeitssatz:3 GB (Daten) + 3 GB (Indizes) =6 GB. Wenn Sie in diesem Szenario über 8 GB RAM verfügen und dann regelmäßig auf die Daten der letzten 6 Monate zugreifen, würde Ihr Arbeitssatz Ihren verfügbaren RAM überschreiten und sich auf die Leistung auswirken.

Aber im Allgemeinen, wenn Sie genug RAM haben, um die Menge an Daten/Indizes abzudecken, auf die Sie voraussichtlich häufig zugreifen werden, dann ist alles in Ordnung.

Bearbeiten:Antwort auf Frage in Kommentaren
Ich bin mir nicht sicher, ob ich dir ganz folgen kann, aber ich werde versuchen, zu antworten. Erstens ist die Berechnung für den Arbeitssatz eine "Ballpark-Zahl". Zweitens, wenn Sie einen (z. B.) 1-GB-Index auf user_id haben, muss sich nur der Teil dieses Index, auf den häufig zugegriffen wird, im RAM befinden (z. B. angenommen, 50 % der Benutzer sind inaktiv, dann werden 0,5 GB des Index häufiger verwendet). benötigt/benötigt im RAM). Im Allgemeinen ist es umso besser, je mehr RAM Sie haben, zumal der Arbeitssatz im Laufe der Zeit aufgrund der zunehmenden Nutzung wahrscheinlich anwächst. Hier kommt Sharding ins Spiel – teilen Sie die Daten auf mehrere Knoten auf und Sie können kostengünstig skalieren. Ihr Arbeitssatz wird dann auf mehrere Maschinen aufgeteilt, was bedeutet, dass mehr im RAM gehalten werden kann. Benötigen Sie mehr RAM? Fügen Sie eine weitere Maschine hinzu, auf der Shard ausgeführt werden soll.