资讯动态

mysql druid连接池配置

发布时间:2026/10/15 5:42:59 来源:尧图企业网站定制
生产有家医院系统报错只看报错信息就是mapper执行sql时报错。服务受阻无法正在运行。但sql没有任何语法错误只能猜想是否连接数据库有问题通过telnet ip 端口 确认能连上db服务器再猜想应用层面配置问题数据库连接池获取不到可用连接打开配置文件查看spring.datasource.initialSize187 spring.datasource.minIdle187 spring.datasource.maxActive100这个配置有点儿傻眼直觉告诉我minIdle和initialSize相等那不就等于所有连接都闲置但不能用么但因为是直觉实际上完全没理解这个minIdle的含义对于做技术的人得用技术说话才是还是默默打开搜索引擎看看druid这些配置项什么意思。maxWait-1获取连接时最大等待时间单位毫秒。配置了maxWait之后缺省启用公平锁并发效率会有所下降如果需要可以通过配置useUnfairLock属性为true使用非公平锁。maxActive8连接池最大活跃连接数量当连接数量达到该值时再获取新连接时将处于等待状态直到有连接被释放才能借用成功minIdle0连接池最小空闲数量当连接池里的连接小宇这个值时会主动创建连接达到最小空闲连接数initialSize0初始化数据源时建立物理连接的个数。初始化发生在显示调用init方法或者第一次getConnection时keepAlivefalse连接池中的minIdle数量以内的连接空闲时间超过minEvictableIdleTimeMillis则会执行keepAlive操作。实际项目中建议配置成true但这个参数和druid版本有关1.0.28之后才支持之前的版本即便配了也不起作用这个是搜了网上配置说明但还是一头雾水 连接池最小空闲数量。什么意思什么算空闲在池里创建了的连接但没有被使用的连接么那如果空闲连接数小于minIdle会怎么样呢连接有效检测相关配置如下testOnBorrow和testOnRetrun生产通常是false配置true会影响性能。探测是顺序进行的一次探测如果失败会从连接池移除该失效的连接。具体流程是Druid 的后台线程Destroy 线程拿到一个空闲连接执行SELECT x进行探测如果抛出异常包括 I/O 错误Druid 判定该连接已失效将该连接从connections数组中移除并执行物理关闭

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑