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

MongoDB:Perché dovremmo chiudere il cursore dopo che è stato utilizzato?

La chiusura del cursore è davvero necessaria solo quando non si "esauriscono" i risultati. O in altri termini, scorrere tutti i possibili risultati restituiti dal cursore.

Lasciare un "cursore" aperto è come lasciare una connessione aperta che non viene mai riutilizzata. Queste cose non sono gratuite. Infatti il ​​costo standard della connessione è di 1MB (circa). Quindi, se stai lasciando molti cursori "parzialmente iterati" in giro, c'è un sovraccarico generale in termini di connessione attiva e utilizzo della memoria.

Se in effetti esegui sempre l'iterazione "tutti" dei risultati (e questo include un "limite" che è un "modificatore del cursore"), il cursore si chiuderà e tutto andrà bene.

L'uso generale sarà che in realtà esaurisci / esaurisci il cursore esaminando tutti i risultati. Quindi non c'è bisogno esplicito di distruggere.