猫鼬连接池

时间:2015-01-18 17:01:52

标签: node.js mongoose

我在Mongoose文档中注意到支持连接池。

http://mongoosejs.com/docs/connections.html

考虑到该节点是单线程的,为什么会有连接池? 什么是池中连接的生命周期?

2 个答案:

答案 0 :(得分:10)

连接池与async vs sync无关 - 它只是这样:

  • 您可以指定维护到数据库的开放连接数量(假设为10)。
  • 每当您的Node JS代码进行查询时,如果可能,它将使用已打开的10个连接之一来发出此请求 - 这样您就可以避免打开新数据库连接的开销每个查询。

维护连接池本质上是维护一个db连接对象数组,并为每个查询选择未使用的连接对象。它根本没有实际影响线程或进程=)

答案 1 :(得分:0)

显然,节点是单线程的,但是在内部,当节点在内部调用IO操作时,它具有某种线程机制来执行IO。主线程本身不会执行此IO操作,如果正在执行IO,则系统已经死了。

https://codeburst.io/how-node-js-single-thread-mechanism-work-understanding-event-loop-in-nodejs-230f7440b0ea