node建立mysql的连接池后,我是用的 pool.query ,直接进行查询的,那么查询后会自动释放连接吗?如果用 getConnection 方法,得主动调用 release() 方法来释放连接,但直接用连接池query呢?
连接池自动释放的,他会默认保持一些链接。
我都是用的getConnection
,但是文档里好像说了用pool.query
是不用主动release
,pool
会自动release
,两者用起来应该是没有什么差别的,但是如果你要是用事务之类的,要保证conn的安全的情况下,还是主动getConnection
比较好
连接池也要主动release连接,否则会报错。你可以试试。
@zouzhenxing 要主动释放么?我从没主动释放过
@imhered 业务完成后或者报错后将连接释放吗?文档里我没找到 pool 会不会主动释放的文字。。。
@zouzhenxing 这个要咋试?我理解是pool会根据每个连接状态释放连接
pool.query不需要释放连接
这里说了,只有getConnection的时候才需要释放
实践证明 pool.query 如果不 release 的话的确会报错:Error: queryHTMLContentByInstanceId fail: Error: ER_CON_COUNT_ERROR: Too many connections