javascript - 使用node杀死所有休眠的mysql池连接

标签 javascript mysql node.js database connection-pooling

我正在为我的项目使用 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/

相关文章:

javascript - 在 Safari 中的 Canvas 页面 iFrame 中使用带有 JS SDK 的 Facebook Graph API 被破坏

Javascript - 解析文件创建和保存......但不是类中的对象......它去哪里了?

php - 如何在创建表时创建外键

javascript - 如何获取 Json 文档数组中数组的索引

node.js - 全局 Sequelize Store 查询值

javascript - 饼图在 php 页面中重叠

javascript - 如何在同一个 react 组件中使用本地状态和 redux 存储状态?

mysql - 从表中获取用户的分组记录

python - SQLAlchemy 复杂查询

javascript - 有没有好的方法来替换集合中的所有 couchDB 对象?