如何在客户端或池之间选择节点postgres

时间:2018-02-12 16:49:17

标签: node.js node-postgres

来自https://node-postgres.com/features/connecting,似乎我们可以在PoolClient之间进行选择以执行查询

pool.query('SELECT NOW()', (err, res) => {
  console.log(err, res)
  pool.end()
})
client.query('SELECT NOW()', (err, res) => {
  console.log(err, res)
  client.end()
})

它们的功能看起来非常相似。但是,文档并没有解释PoolClient之间的差异。

在选择PoolClient之前,我可以知道,我应该考虑什么?

1 个答案:

答案 0 :(得分:17)

  

我可以知道,在选择Pool或Client之前我应该​​考虑什么?

如果您有或期望有多个并发请求,请使用池。这就是它的用途:提供一个可重用的开放client实例池(减少可以重用client的延迟)。

在这种情况下,当您的查询完成时,您肯定不希望调用pool.end(),您希望在应用程序终止时保留该值,因为pool.end()处理了所有打开client个实例。 (请记住,重点是要保持固定数量的client个实例可用。)