我正在使用 PostgreSQL 数据库(AWS RDS)。在nodeJs中,我使用“pg”来查询。所以我设置了池。 根据我的研究,我给出了以下值: https://www.npmjs.com/package/pg
const { Pool } = require('pg');
// create the pg pool
const pool = new Pool({
host: process.env.HOST,
user: process.env.USER,
password: process.env.PASSWORD,
database: process.env.DB,
port: process.env.PORT,
max: 200,
types: types,
poolSize: 200,
idle_in_transaction_session_timeout: 600000,
idle_session_timeout: 3600000,
idleTimeoutMillis: 300000, // close idle clients after 1 second
connectionTimeoutMillis: 300000, // return an error after 1 second if connection could not be established
maxUses: 7500
});
您能否推荐 max、poolSize、idle_in_transaction_session_timeout、idle_session_timeout、idleTimeoutMillis、connectionTimeoutMillis、maxUses 的值。
记住:没有一刀切的配置。最佳值取决于您的特定应用程序和数据库环境。考虑以下因素和准则来得出要配置的所需值。
max
:考虑数据库服务器资源和性能目标,设置为应用程序可能需要的最大并发连接数。poolSize
:设置为平衡连接可用性与内存使用量的值,通常匹配或略低于最大值。idle_in_transaction_session_timeout
:设置为适中的值(例如 600000 毫秒或 10 分钟),以防止长时间运行的事务无限期地保持连接。idle_session_timeout
:设置较短的值(例如 300000 毫秒或 5 分钟)以更快地释放空闲连接。idleTimeoutMillis
:设置为与应用程序的连接使用模式和空闲超时一致的值。connectionTimeoutMillis
:考虑到网络延迟,设置为反映可接受的连接建立时间的值。maxUses
:设置为平衡连接重用与潜在错误处理的值(例如,大多数情况下为 7500 或更高)。