mysql2的Promise连接是否需释放?pool.promise()使用后需调用releaseConnection吗?
mysql2 Promise连接相关问题解答
问题1:mysql2的Promise连接是否需要释放?
分两种情况来看:
- 如果是直接通过
promisePool.query()这类方法执行查询,连接会自动被连接池回收释放,不需要手动操作; - 要是你手动从连接池获取单个连接(比如
const conn = await promisePool.getConnection()),用完之后必须调用conn.release()把连接放回池里,避免连接耗尽。
问题2:执行示例中的查询后,是否需要调用pool.releaseConnection(promisePool)来释放连接?
完全不需要,原因如下:
promisePool是整个连接池的Promise包装实例,不是从池里取出的单个连接对象,调用releaseConnection()传入它会直接报错;- 示例里用的
promisePool.query()方法内部已经做了连接的获取和自动释放逻辑,不用额外干预。
内容的提问来源于stack exchange,提问作者You We Cho
相关产品推荐
相关产品推荐

