javascript - 池连接上的nodejs mysql错误:连接丢失:服务器关闭了连接
问题描述
我的问题与这篇文章类似,但解决方案对我不起作用,可能是因为我使用了不同类型的 mysql 连接(池)。这是我的代码:
let config= {
host: '***',
user: 'admin',
password: '***,
port: '3306',
database: '***',
multipleStatements: true
};
const con = mysql.createPool(config);
select();
function select(){
return new Promise((resolve, reject) => {
con.getConnection(function (err, connection) {
if (err) throw err;
else
console.log("Connected!");
let sql = "SELECT * FROM bidPrice WHERE idExchangePlatform = 2;";
connection.query(sql, function (err, results, fields) {
connection.release();
connection.destroy();
if (err) throw err;
console.log(results)
resolve(results);
});
});
});
}
我还需要提一下,我使用以下命令运行此功能
node --max-old-space-size=31744 index.js # Increase to 31 GB
这是因为我正在处理来自数据库查询的数百万条记录如果我使用常规节点命令运行它,我会得到Javascript heap out of memory
当我尝试将前面提到的解决方案集成到我的代码中时,我只是在一段时间后得到一个“被杀死”的日志,然后进程停止,我应该在使用 mysql.pool 时以不同的方式处理服务器断开连接吗?
解决方案
如果您有很多行的大表,则必须检查列“idExchangePlatform”的索引并创建如果没有成功
以及您的代码的简单变体:
function select(){
return new Promise((rs, rj) => {
let sql = "SELECT * FROM bidPrice WHERE idExchangePlatform = 2;";
pool.query(sql, (err, rows) => {
if(err)
return rj(err);
return rs(rows);
})
});
}
推荐阅读
- python - 使用 Python 在 Google 地球引擎中上传资产?
- opengl - 用阴影渲染行星周围的大气
- flutter - 输入'未来
- >' 不是“未来”类型的子类型
- >'
- python-3.x - 如何在python的列中对字符串进行分组?
- javascript - 使用内部方法设置对象的内部属性 - JavaScript
- javascript - 如何在mongodb中创建全年条目
- javascript - Rails 6拖放(可排序)
- java - NoSuchBeanException,即使定义了 Bean
- python - 使用python的ssl服务器和客户端-客户端由于异常而关闭连接
- javascript - JavaScript Number 类在 Eclipse IDE 中不起作用