数据库连接池的配置取决于你使用的编程语言 / 框架 / 中间件。下面我先给你一个通用思路,再按常见场景给你可直接用的配置示例。
不管用什么技术,基本都要配这几个:
最大连接数(maxPoolSize / maximumPoolSize)
DB 能承受的连接数 / 应用实例数最小空闲连接数(minIdle)
连接超时(connectionTimeout)
空闲连接回收时间(idleTimeout)
连接最大存活时间(maxLifetime)
健康检查(validationQuery / testOnBorrow)
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: root
hikari:
maximum-pool-size: 20
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
pool-name: MyHikariPool
✅ 推荐:Spring Boot 默认就用 Hikari,性能最好
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
validation-query: SELECT 1
test-while-idle: true
from sqlalchemy import create_engine
engine = create_engine(
"mysql+pymysql://user:pwd@localhost/db",
pool_size=10,
max_overflow=20,
pool_recycle=1800,
pool_pre_ping=True
)
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'root',
database: 'test',
waitForConnections: true,
connectionLimit: 20,
queueLimit: 0
});
db, _ := sql.Open("mysql", "user:pwd@tcp(127.0.0.1:3306)/db")
db.SetMaxOpenConns(20)
db.SetMaxIdleConns(10)
db.SetConnMaxLifetime(time.Minute * 30)
maxLifetime → 半夜报错new Connection你可以告诉我:
我可以直接给你最优配置值。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。