MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB può funzionare quando la dimensione del database è maggiore della RAM?

Sì può funzionare. A quale livello si esibirà è più di un "Dipende"

La cosa fondamentale è garantire il tuo set di lavoro può stare nella RAM. Quindi, se hai 16 GB di RAM e 20 GB di database (indici inclusi), ad esempio, se devi accedere solo a metà di tutti i dati poiché l'altra metà è più vecchia/non è mai stata effettivamente interrogata, allora starai bene solo la metà dei tuoi il database deve essere nella RAM (10 GB).

Il working set è fondamentale qui. Ad esempio, se hai un'applicazione di registrazione che invia l'output a MongoDB, è possibile che il tuo set di lavoro sia la quantità di dati (e indici) degli ultimi 3 mesi e che tutti i dati precedenti non siano accessibili.

Quando il tuo set di lavoro supera la quantità di RAM, continuerà a funzionare ma con prestazioni notevolmente ridotte poiché le cose dovranno quindi andare costantemente su disco che è molto meno performante. Se ti trovi in ​​questa situazione di superamento dei vincoli della RAM su una macchina, è qui che entra in gioco lo sharding, quindi puoi bilanciare i dati su un numero di macchine aumentando così la quantità di dati che possono essere mantenuti nella RAM.