连接池的核心价值:解决直连 TDSQL Boundless 带来的连接频繁创建销毁性能损耗、连接数失控、数据库雪崩风险三大核心问题。
TDSQL Boundless 完全兼容 MySQL 8.0 协议和语法,所有 MySQL 生态的 JDBC 驱动、数据库连接池都可以无缝对接 TDSQL Boundless。
前置准备
开发环境依赖
驱动依赖: 所有连接池均基于 MySQL JDBC 驱动连接 TDSQL Boundless,TDSQL Boundless 无需单独引入驱动包,直接使用 MySQL 官方驱动即可。
JDK 版本:JDK8及以上(推荐 JDK8/JDK11)。
获取 TDSQL Boundless 标准连接信息
连接 TDSQL Boundless 前,获取以下核心信息:
信息项 | 示例 | 说明 |
JDBC 连接地址 (URL) | jdbc:mysql://tdsql-xxxxxx.dns.tdsql.com:3306/your_db_name | 连接地址格式与 MySQL 完全一致 |
用户名 | tdsql_user | TDSQL Boundless 独立分配的账号,有严格库表权限 |
密码 | TdSql@Pass123 | 生产环境建议复杂密码,包含大小写 + 特殊字符 |
驱动类名 | com.mysql.cj.jdbc.Driver(MySQL8.x 驱动,推荐)com.mysql.jdbc.Driver(MySQL5.x 驱动) | - |
核心规范:TDSQL Boundless 连接池通用配置参数
JDBC URL 连接参数
完整 URL 示例
jdbc:mysql://tdsql-******.dns.tdsql.com:3306/your_db_name?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&rewriteBatchedStatements=true&connectTimeout=3000&socketTimeout=60000
参数详细说明
参数 | 值 | 作用说明 |
useUnicode | true | 启用 Unicode 编码。 |
characterEncoding | utf8mb4 | 支持完整 Unicode,支持 emoji 表情,避免中文乱码。 |
serverTimezone | Asia/Shanghai | 指定东八区,解决 MySQL 8.x 驱动时区异常,TDSQL Boundless 集群跨地域部署时必配。 |
autoReconnect | true | TDSQL Boundless 是主从架构 + 高可用切换,当连接断开 / 主库切换时,自动重连,且重连后可写,避免连接失效导致的业务报错。 |
failOverReadOnly | false | |
rewriteBatchedStatements | true | 开启批量 SQL 重写,提升 INSERT/UPDATE 批量操作性能。 |
connectTimeout | 3000 | 连接建立超时3秒,快速失败,避免线程阻塞。 |
socketTimeout | 60000 | 连接读写超时60秒,防止慢 SQL 导致连接池耗尽。 |
连接池核心参数
参数类别 | HikariCP 参数 | Druid 参数 | 推荐值 | 说明 |
连接池大小(最小空闲连接数) | minimumIdle | minIdle | CPU核心数 × 2 | 默认5即可,保证连接池有固定的空闲连接,避免频繁创建连接。 |
最大连接数 | maximumPoolSize | maxActive | 按需配置 | - |
空闲连接回收时间 | idleTimeout | maxEvictableIdleTimeMillis | 300000ms(5分钟) | 回收长时间空闲的连接,释放数据库资源。 |
连接等待超时时间 | connectionTimeout | maxWait | 3000ms(3秒) | 当连接池无可用连接时,业务线程等待的超时时间,快速失败,避免线程阻塞堆积。 |