node.js mysql 建立连接、查询、释放连接问题
发布于 3 年前 作者 jkiss 3799 次浏览 来自 问答

node建立mysql的连接池后,我是用的 pool.query ,直接进行查询的,那么查询后会自动释放连接吗?如果用 getConnection 方法,得主动调用 release() 方法来释放连接,但直接用连接池query呢?

9 回复

连接池自动释放的,他会默认保持一些链接。

我都是用的getConnection,但是文档里好像说了用pool.query是不用主动releasepool会自动release,两者用起来应该是没有什么差别的,但是如果你要是用事务之类的,要保证conn的安全的情况下,还是主动getConnection比较好

连接池也要主动release连接,否则会报错。你可以试试。

@zouzhenxing 要主动释放么?我从没主动释放过

@imhered 业务完成后或者报错后将连接释放吗?文档里我没找到 pool 会不会主动释放的文字。。。

@zouzhenxing 这个要咋试?我理解是pool会根据每个连接状态释放连接

pool.query不需要释放连接

这里说了,只有getConnection的时候才需要释放

https://github.com/mysqljs/mysql#pooling-connections

untitled1.png

实践证明 pool.query 如果不 release 的话的确会报错:Error: queryHTMLContentByInstanceId fail: Error: ER_CON_COUNT_ERROR: Too many connections

回到顶部