CNode

node.js mysql 建立连接、查询、释放连接问题

问答
Jjkiss发布于10 年前最后回复10 年前9 回复7747 浏览0 收藏

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

查看回复

回复 (9)

F
fangker#1·10 年前

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

I
im-here#2·10 年前

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

Z
zouzhenxing#3·10 年前

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

C
CoderIvan#4·10 年前

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

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

untitled1.png

J
jkiss#5·10 年前

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

F
fangker#6·10 年前

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

J
jkiss#7·10 年前
J
jkiss#8·10 年前
引用 zouzhenxing连接池也要主动release连接,否则会报错。你可以试试。

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

S
shadow88sky#9·10 年前

pool.query不需要释放连接

参与回复
登录后即可参与回复。登录