sql >> Database >  >> NoSQL >> MongoDB

MongoDB:Waarom moeten we de cursor sluiten nadat deze is gebruikt?

Het sluiten van de cursor is alleen echt nodig als u de resultaten niet "uitput". Of met andere woorden, herhaal alle mogelijke resultaten die door de cursor worden geretourneerd.

Een "cursor" open laten is als het verlaten van een open verbinding die nooit opnieuw wordt gebruikt. Deze dingen zijn niet gratis. In feite zijn de standaard verbindingskosten 1 MB (ongeveer). Dus als u veel "gedeeltelijk herhaalde" cursors laat rondhangen, is er een algemene overhead in termen van een actieve verbinding en het geheugengebruik.

Als je eigenlijk altijd "alle" resultaten herhaalt (en dat is inclusief een "limiet", wat een "cursormodifier" is), dan zal de cursor sluiten en is alles in orde.

Algemeen gebruik is dat u de cursor daadwerkelijk uitput/uitput door alle resultaten te doorlopen. Daarom is er geen expliciete noodzaak om te vernietigen.



  1. Bewaar geneste hash in redis via een node.js-app

  2. Heeft de lengte van de naam invloed op de prestaties in Redis?

  3. Spring Data en MongoDB-repository - hoe maak je een updatequery?

  4. Database.yml verwijderen bij gebruik van Mongoid in Rails 3.2