接続を一度開いて変数に格納し、最後に閉じることをお勧めします。 MongoDBはこれを明示的に推奨しています。これが、接続の開閉がクエリごとに自動的に行われるのではなく、MongoDBAPIの一部である理由です。
各クエリの接続を開いたり閉じたりすると、パフォーマンス(CPU +遅延)、ネットワークトラフィック、メモリ管理(オブジェクトの作成と削除)の両方の観点から、クライアントだけでなくサーバー自体にも大きなオーバーヘッドが発生します。これも影響します。他のクライアント。
接続の用語について :Javaなどの一部のドライバーでは、実際に作成されて変数に格納されるのは物理的な接続ではなく、MongoClient
実例。抽象(API)の観点からは接続のように見えますが、実際には実際の物理的な接続をカプセル化し、ユーザーから複雑さを隠します。
MongoClient
の作成 これをサポートするドライバーの場合、インスタンスを1回だけ使用すると、接続プールのメリットも得られます。 ここで、ドライバーはアクティブな接続を並行して維持するため、1つのMongoClient
を作成するだけで済みます。 複数のスレッドにまたがるインスタンス。