温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库连接池怎么配

发布时间:2026-10-14 01:29:49 来源:亿速云 阅读:93 作者:小樊 栏目:数据库

数据库连接池的配置取决于你使用的编程语言 / 框架 / 中间件。下面我先给你一个通用思路,再按常见场景给你可直接用的配置示例。


一、连接池核心参数(通用)

不管用什么技术,基本都要配这几个:

  1. 最大连接数(maxPoolSize / maximumPoolSize)

    • 一般 = DB 能承受的连接数 / 应用实例数
    • 常见:10~50(单实例)
  2. 最小空闲连接数(minIdle)

    • 保持常驻连接,避免冷启动慢
    • 常见:2~10
  3. 连接超时(connectionTimeout)

    • 拿不到连接最多等多久
    • 常见:3~10 秒
  4. 空闲连接回收时间(idleTimeout)

    • 空闲多久回收
    • 常见:5~10 分钟
  5. 连接最大存活时间(maxLifetime)

    • 防止长连接被 DB kill
    • 一般 小于 DB 的 wait_timeout
  6. 健康检查(validationQuery / testOnBorrow)

    • 避免拿到死连接

二、常见场景配置示例

1️⃣ Java + Spring Boot(HikariCP,默认)

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,性能最好


2️⃣ Java(Druid)

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

3️⃣ Python(SQLAlchemy + pooling)

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
)

4️⃣ Node.js(mysql2 + pool)

const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'test',
  waitForConnections: true,
  connectionLimit: 20,
  queueLimit: 0
});

5️⃣ Go(database/sql)

db, _ := sql.Open("mysql", "user:pwd@tcp(127.0.0.1:3306)/db")
db.SetMaxOpenConns(20)
db.SetMaxIdleConns(10)
db.SetConnMaxLifetime(time.Minute * 30)

三、常见踩坑 ⚠️

  • ❌ 连接数配太大 → DB 被打爆
  • ❌ 不配 maxLifetime → 半夜报错
  • ❌ 多实例应用没除以实例数
  • ❌ 用了连接池还每次 new Connection

四、我可以更精准帮你

你可以告诉我:

  1. 用什么语言 / 框架?
  2. 数据库类型(MySQL / PostgreSQL / Oracle?)
  3. 单机能承受多少连接?
  4. 是 Web 服务还是批处理?

我可以直接给你最优配置值。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手