簡體   English   中英

Postgres:何時在查詢中使用.end() vs.release()(這在 util.promisify 中是否發生了變化)? 缺少這些功能是否會增加 memory 的使用量?

[英]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 度量標准的線性增加部分所示?

1

請注意,我需要('pg')並在 Node.js 文件的早期運行 db.connect()。 謝謝你為我做的一切!

有時最好只使用 pool.query() 來查詢數據庫,而不是使用 client.query(),那時您不需要處理釋放客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM