2026-10-30 20:16:49
在 Sequelize 中,连接池(Connection Pool)用于管理数据库连接,通过复用连接来提升性能。以下是关键配置参数及其作用的详细说明:
核心配置参数max
作用:连接池中允许的最大连接数。
默认值:5
示例:max: 10 表示最多同时维护 10 个连接。
适用场景:高并发时需调大此值,但需避免超过数据库连接限制。
min
作用:连接池中保持的最小空闲连接数。
默认值:0
示例:min: 2 表示始终保留 2 个空闲连接。
适用场景:频繁创建新连接的开销较大时,设置 min > 0 可减少延迟。
idle
作用:连接空闲超过此时间(毫秒)后会被释放。
默认值:10000(10 秒)
示例:idle: 30000 表示空闲 30 秒的连接会被销毁。
适用场景:避免连接长时间占用资源,尤其在开发环境。
acquire
作用:获取连接的超时时间(毫秒),超时后抛出错误。
默认值:无(默认不超时)
示例:acquire: 60000 表示 60 秒内未获取到连接则报错。
适用场景:防止因连接泄漏导致请求无限等待。
连接泄漏
若未正确释放连接(如未调用 release() 或未使用 async/await),可能导致连接耗尽。
解决方案:使用 try/catch 确保连接释放,或启用 acquire 超时。
数据库限制
确保 max 不超过数据库的最大连接数(如 MySQL 的 max_connections)。
性能调优
高并发场景下,适当增大 max 并设置合理的 min 和 idle。
监控连接池状态(如 sequelize.pool 的统计信息)。
环境差异
开发环境:低 max 和短 idle 快速释放资源。
生产环境:高 max、长 idle 和 acquire 超时保障稳定性。
通过合理配置连接池参数,可以显著提升应用性能并避免资源浪费。建议根据实际负载测试调整参数。