MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB :Dlaczego powinniśmy zamknąć kursor po jego użyciu?

Zamknięcie kursora jest naprawdę wymagane tylko wtedy, gdy nie „wyczerpiesz” wyników. Innymi słowy, iteruj po wszystkich możliwych wynikach zwracanych przez kursor.

Pozostawienie otwartego „kursora” jest jak pozostawienie otwartego połączenia, które nigdy nie zostanie ponownie użyte. Te rzeczy nie są darmowe. W rzeczywistości standardowy koszt połączenia to 1 MB (około). Więc jeśli zostawiasz wiele "częściowo iterowanych" kursorów, istnieje ogólne obciążenie w zakresie aktywnego połączenia i zużycia pamięci.

Jeśli faktycznie zawsze iterujesz „wszystkie” wyniki (w tym „limit”, który jest „modyfikatorem kursora”), kursor zamknie się i wszystko będzie w porządku.

Ogólne zastosowanie będzie polegało na tym, że faktycznie wyczerpujesz/zubożasz kursor, przeglądając wszystkie wyniki. Dlatego nie ma wyraźnej potrzeby niszczenia.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego sortowanie MongoDb jest powolne w przypadku kolekcji wyszukiwania

  2. mongoDB:jak sprawdzić istnienie klucza dykt w zagnieżdżonym dyktacie?

  3. Czy django z mongodb sprawia, że ​​migracje to już przeszłość?

  4. Automatyczna sekwencja inkrementacji w mongodb przy użyciu java

  5. Model zmieniający środowisko wykonawcze za pomocą mongodb/mongoid