Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 什么';ORM/query builder库连接池大小和pgbouncer连接池大小之间的差异是什么?_Postgresql_Orm_Sequelize.js_Knex.js_Pgbouncer - Fatal编程技术网

Postgresql 什么';ORM/query builder库连接池大小和pgbouncer连接池大小之间的差异是什么?

Postgresql 什么';ORM/query builder库连接池大小和pgbouncer连接池大小之间的差异是什么?,postgresql,orm,sequelize.js,knex.js,pgbouncer,Postgresql,Orm,Sequelize.js,Knex.js,Pgbouncer,我对pgbouncer池大小配置和ORM(类似)、查询生成器(类似)库池大小配置感到困惑。该体系结构如下所示: 应用程序代码=>pgbouncer=>postgresql pgbouncer.ini: ;; ... ;; Default pool size. 20 is good number when transaction pooling ;; is in use, in session pooling it needs to be the number of ;; max clients

我对pgbouncer池大小配置和ORM(类似)、查询生成器(类似)库池大小配置感到困惑。该体系结构如下所示:

应用程序代码=>pgbouncer=>postgresql

pgbouncer.ini:

;; ...
;; Default pool size.  20 is good number when transaction pooling
;; is in use, in session pooling it needs to be the number of
;; max clients you want to handle at any moment
;default_pool_size = 20
;; ...
续集连接池配置:

const sequelize=新的sequelize(/*…*/{
// ...
游泳池:{
最高:5,
分:0,,
获得:30000,
闲置:10000
}
});
knex.js连接池配置:

var knex=require('knex'))({
客户端:“mysql”,
连接:{
主持人:“127.0.0.1”,
用户:“您的数据库用户”,
密码:“您的数据库密码”,
数据库:“myapp_测试”
},
池:{min:0,max:7}
});

如果同时使用sequelize.js连接池配置和pgbouncer连接池大小配置,会发生什么情况?数据库服务器使用哪种配置?我应该只使用其中一个吗?谢谢。

将菊花链连接池放在一起很少有意义。因此,除了内置的pgbouncer外,使用pgbouncer可能没有任何意义。数据库服务器不知道您的连接池,除非池管理器向数据库发送自己的显式命令,并且它有自己使用的配置文件(postgresql.conf)。

将连接池串联在一起很少有意义。因此,除了内置的pgbouncer外,使用pgbouncer可能没有任何意义。数据库服务器不知道您的连接池,除非池管理器向数据库发送自己的显式命令,并且它有自己使用的配置文件(postgresql.conf)。

如果您有3个应用程序进程运行knex或sequelize,然后,您应该将pgbouncer poolsize设置为比单个knex/sequelize池使用的大小大3倍

然后,您还需要确保postgres服务器还配置了足够的连接来处理pgbouncer连接


尽管如@jjanes所说。没有理由将pgbouncer与knex/sequelize一起使用,因为它们已经提供了池。我想pgbouncer应该与不支持池的框架一起使用。例如,如果PHP或cgi stript在每次页面加载时重新初始化并调用数据库。

如果您有3个应用程序进程运行knex或sequelize,那么您应该将pgbouncer poolsize设置为比单个knex/sequelize池使用量大3倍

然后,您还需要确保postgres服务器还配置了足够的连接来处理pgbouncer连接

尽管如@jjanes所说。没有理由将pgbouncer与knex/sequelize一起使用,因为它们已经提供了池。我想pgbouncer应该与不支持池的框架一起使用。例如,如果PHP或cgi stript在每次页面加载时重新初始化并调用数据库