MongoDB - 打开和关闭连接 - 建议良好实践

Pic*_*cci 7 mongodb

我通过其node.js的驱动程序使用MongoDB

我通常在connect()需要执行操作时打开连接(通过方法),并close()在完成后立即关闭它(通过方法).在我的程序中,作为自然,我需要对MongoDB执行许多操作,因此我会多次打开和关闭连接.

我想知道这是一个好的做法,或者是否最好在执行第一个操作时打开连接,将其存储在变量中并使用已打开的连接进行以下操作,在程序结束时关闭它.

非常感谢任何建议.

Ghi*_*rny 9

最佳做法是打开连接一次,将其存储在变量中并在最后关闭它.MongoDB明确推荐这个.这就是为什么打开和关闭连接是MongoDB API的一部分而不是为每个查询自动发生的原因.

每个查询的打开和关闭连接将在性能(CPU +延迟),网络流量,内存管理(创建和删除对象)方面带来显着的开销,不仅对于客户端而且对于服务器本身而言,这也会影响其他客户.

关于连接术语:在Java等驱动程序中,实际创建和存储在变量中的不是物理连接,而是MongoClient实例.它看起来像是从抽象(API)角度看的连接,但它实际上封装了实际的物理连接并隐藏了用户的复杂性.

MongoClient对于支持此实例的驱动程序,只创建一次实例,还可以让您从连接池中受益,其中驱动程序为您并行维护活动连接,因此您还需要MongoClient跨多个线程创建一个实例.