Najlepszą praktyką jest jednokrotne otwarcie połączenia, zapisanie go w zmiennej i zamknięcie na końcu. MongoDB wyraźnie to zaleca. To jest powód, dla którego otwieranie i zamykanie połączenia jest częścią interfejsu API MongoDB, a nie dzieje się to automatycznie dla każdego zapytania.
Otwieranie i zamykanie połączeń dla każdego zapytania wprowadzi znaczne obciążenie zarówno pod względem wydajności (procesor + opóźnienie), ruchu sieciowego, zarządzania pamięcią (tworzenie i usuwanie obiektów), nie tylko dla klienta, ale także dla samego serwera, co również ma wpływ na innych klientów.
Informacje o terminologii połączenia :w niektórych sterownikach, takich jak Java, to, co jest faktycznie tworzone i przechowywane w zmiennej, nie jest połączeniem fizycznym, ale MongoClient
instancja. Wygląda jak połączenie z abstrakcyjnej perspektywy (API), ale w rzeczywistości zawiera rzeczywiste połączenie fizyczne i ukrywa złożoność przed użytkownikiem.
Tworzenie MongoClient
przykład tylko raz, dla sterowników, które to obsługują, pozwoli Ci również skorzystać z zestawiania połączeń gdzie sterownik utrzymuje aktywne połączenia równolegle dla Ciebie, więc wystarczy utworzyć tylko jeden MongoClient
wystąpienie w wielu wątkach.