[英]Postgres: When to use .end() vs .release() in queries (and does this change in util.promisify)? Does lack of these functions increase memory usage?
所以在我的应用程序中,我在部署到 Heroku 的 Node.js 环境中使用 Postgres DB。 我意识到在我的所有查询中,我没有 db.release() 或 db.end(),我认为我需要在我的函数末尾有这些。 我尝试查看堆栈和其他文章以确定它们之间的区别,在函数中使用它们的位置,以及不使用它们是否会导致我的 Heroku memory 容量达到,但我无法找到详细说明问题的资源。
第一个问题——什么时候使用.end(),什么时候使用.release()? 有什么区别,我应该使用不同的 function 从数据库“断开”连接吗?
第二个问题——在如下的基本查询中,我应该把 .end() 或 .release() 放在哪里? (也就是返回之前或之后)
db.query(sql, (err, res) => {
if (err) {
return console.log(err.message);
} else {
return res;
}
})
第三个问题——如果我承诺 db.query,I.end() 或 .release() 怎么做?
const util = require('util')
const queryP = util.promisify(db.query)
await queryP.call(db, sqlStatement);
最后一个问题——缺少 using.end() 或 .release() 是否会导致我的 Heroku memory 达到,如仪表板中 ZCD69B4957F06CD818D7BF3D61980E29 度量标准的线性增加部分所示?
请注意,我需要('pg')并在 Node.js 文件的早期运行 db.connect()。 谢谢你为我做的一切!
有时最好只使用 pool.query() 来查询数据库,而不是使用 client.query(),那时您不需要处理释放客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.