mysql initialsize_Druid配置参数详解-initialSize

本文详细解析了Druid数据库连接池中的initialSize配置参数,它指定了连接池初始化时创建的数据库连接数量。当项目首次进行数据库操作时,initialSize生效并创建相应数量的连接。过多的初始连接可能导致首次响应变慢,因为创建连接耗时。在DruidDataSource的init方法中,根据initialSize初始化物理连接。总结来说,initialSize合理设置对连接池性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Druid配置参数详解-initialSize

Druid是一个由阿里开源的数据库连接池,Druid的配置非常丰富,但是设置不当会对生产环境造成严重影响,网上Druid的资料虽多,但大部分都是互相复制粘贴,有很多不准确甚至完全错误的描述,Druid已经开源很久,而且作者WenShao的工作重心也已经不在Druid上,有些功能估计他自己都不太了解了。本系列将从源代码的角度分析Druid目前的最新版本(1.1.21)各个常用的配置项的具体含义以及是怎么起作用的。

画外音:目前Druid在开源中国举办的2019年度最受欢迎中国开源软件中排名第7名,支持Druid的朋友可以去投票哇。2019年度最受欢迎中国开源软件

initialSize是什么意思?

initialSize:连接池初始化时初始化的数据库连接数

initialSize在哪个阶段会起作用?

当项目第一次进行增,删,改,查的时候,连接池会初始化,这个时候会根据initialSize参数初始化数据库连接放入连接池中。

画外音:这就是为什么第一次进行数据库操作的时候,响应会比较慢的原因,创建数据库连接是很耗时的,所以初始化连接并不是越多越好

initialSize是怎么起作用的?

当连接池初始化时,会调用DruidDataSource的init初始化数据库连接

public void init() throws SQLException {

if (inited) {

return;

}

//....

}

// init connections

//poolingCount是连接池中已有连接数

while (poolingCount < initialSize) {

try {

PhysicalConnectionInfo pyConnectInfo = createPhysicalConnection();

DruidConnectionHolder holder = new DruidConnectionHolder(this, pyConnectInfo);

connections[poolingCount++] = holder;

} catch (SQLException ex) {

LOG.error("init datasource error, url: " + this.getUrl(), ex);

if (initExceptionThrow) {

connectError = ex;

break;

} else {

Thread.sleep(3000);

}

}

}

总结

initialSize的作用是告诉连接池初始化时应该初始化的物理连接数,要注意的是这个值越大,第一次调用数据库时越慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值