我正在为我的项目使用 Node 并使用连接池,每当我查询 show processlist
时,我都会发现超过 200 个 sleep 连接,即使我在每次查询后都会释放它 -
return new Promise((resolve, reject) => {
sql.getConnection(function (err, conn) {
if (err) {
conn.release();
reject(err)
}
conn.query('QUERY', function (err, rows) {
conn.release();
if (err) {
reject(err)
}
else {
resolve(rows[0])
}
})
})
})
我仍然发现了 200 多个 sleep 连接。有没有办法通过 Node 杀死无用的 sleep 连接?或者有这么多 sleep 连接可以吗?
提前致谢!
最佳答案
如果您使用连接池,则需要close all the connections in the pool当您使用完它们后。否则,连接将保持打开状态,直到被 MySQL 服务器关闭为止。
pool.end(function (err) {
// all connections in the pool have ended
});
This GitHub issue详细解释了释放连接 (conn.release()
) 和关闭底层连接池 (pool.end()
) 之间的细微差别。
关于javascript - 使用node杀死所有休眠的mysql池连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60647812/