在哪里定义 Postgres 中的最大连接数?

Where to define the maximum number of connections in Postgres?

我想在多租户环境中限制每个数据库的用户数。但是有三个级别的最大连接数,我应该感谢任何建议。

1 级整个服务器

通过编辑 Postgresql 的配置,我可以为服务器上的所有数据库设置最大连接数

postgresql.conf = max_connections = 100

每个数据库 2 级

我可以 select 并设置每个数据库的数据库连接限制:

SELECT datconnlimit FROM pg_database

每个角色 3 级

我可以 select 并根据 "user" 设置角色连接限制:

SELECT rolconnlimit FROM pg_roles

我的问题是

  1. 如果postgresql.conf中的max_connections是100,会不会是所有数据库的最大连接数,不管数据库和角色设置?例如100个数据库只能同时有1个连接?

  2. 限制最大连接数的最佳位置在哪里。在数据库级别还是在角色级别?

  3. 还有什么要考虑的吗?

任何建议或线索的 TIA!

  1. max_connections 减去 superuser_reserved_connections 是集群中所有非超级用户连接到所有数据库的总和的最大值。

  2. 如果你想限制每个数据库的用户数量,对数据库设置限制似乎是显而易见的选择,对吧?

  3. 如果您最终将 max_connections 设置为较高的值,请考虑改用连接池。