首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用节点- postgres查询postgres db

用节点- postgres查询postgres db
EN

Stack Overflow用户
提问于 2015-12-12 06:03:37
回答 1查看 1.6K关注 0票数 2

每次查询数据库时都需要使用pg.connect()吗?在查看了githhub页面和wiki之后,示例显示了一个类似于这样的pg.connect回调内部的查询(注释来自github示例,我没有编写它们)

代码语言:javascript
复制
//this initializes a connection pool
//it will keep idle connections open for a (configurable) 30 seconds
//and set a limit of 20 (also configurable)
pg.connect(conString, function(err, client, done) {
  if(err) {
    return console.error('error fetching client from pool', err);
  }
  client.query('SELECT $1::int AS number', ['1'], function(err, result) {
    //call `done()` to release the client back to the pool
    done();

    if(err) {
      return console.error('error running query', err);
    }
    console.log(result.rows[0].number);
    //output: 1
  });
});

这些注释令人困惑,因为它听起来像是pg.connect()在使用每个调用创建一个新的客户机池,这显然是效率低下的。我在文档中看到了创建客户端的其他示例,但我希望使用客户机池。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-12 08:21:37

是的,pg.connect是推荐的做事方式。如github页面所述:https://github.com/brianc/node-postgres。它不是为每个请求创建一个池,而是一个新的请求将创建一个“池”,所有后续的查询都会添加到该连接中,直到超时30秒。//它将保持空闲连接打开30秒(可配置的),因此当应用程序未被使用时没有连接,但是一旦您每秒钟收到几个查询,它们都会在该连接上排队。可以更改超时时间和排队数量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34236867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档