来自https://node-postgres.com/features/connecting,似乎我们可以在Pool
或Client
之间进行选择以执行查询
pool.query('SELECT NOW()', (err, res) => {
console.log(err, res)
pool.end()
})
client.query('SELECT NOW()', (err, res) => {
console.log(err, res)
client.end()
})
它们的功能看起来非常相似。但是,文档并没有解释Pool
和Client
之间的差异。
在选择Pool
或Client
之前,我可以知道,我应该考虑什么?
答案 0 :(得分:17)
我可以知道,在选择Pool或Client之前我应该考虑什么?
如果您有或期望有多个并发请求,请使用池。这就是它的用途:提供一个可重用的开放client
实例池(减少可以重用client
的延迟)。
在这种情况下,当您的查询完成时,您肯定不希望调用pool.end()
,您希望在应用程序终止时保留该值,因为pool.end()
处理了所有打开client
个实例。 (请记住,重点是要保持固定数量的client
个实例可用。)