MySQL连接池详解

使用场景
数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

原理
连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

注意事项
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:
            1. 最小连接数
是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。

            2. 最大连接数 是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。

            3. 最小连接数与最大连接数差距最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过, 这些新建的连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
--------------------- 
作者:高贵的胖子 
来源:CSDN 
原文:https://blog.csdn.net/ruziwang/article/details/79342908 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个快速开发框架,而Druid是一个高性能的数据库连接池。在Spring Boot中,可以通过配置来使用Druid连接池。 首先,在pom.xml文件中添加Druid的依赖: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> ``` 接下来,在application.properties或application.yml配置文件中添加Druid连接池的相关配置信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 spring.datasource.maxWait=60000 spring.datasource.timeBetweenEvictionRunsMillis=60000 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.filters=stat,wall,slf4j ``` 其中,关键的配置项包括: - `spring.datasource.url`:数据库连接URL。 - `spring.datasource.username`:数据库用户名。 - `spring.datasource.password`:数据库密码。 - `spring.datasource.driver-class-name`:数据库驱动类名。 - `spring.datasource.type`:连接池类型,这里配置为`com.alibaba.druid.pool.DruidDataSource`。 - `spring.datasource.initialSize`:连接池的初始化大小。 - `spring.datasource.minIdle`:空闲连接的最小数量。 - `spring.datasource.maxActive`:最大活跃连接数。 - `spring.datasource.maxWait`:获取连接的最大等待时间。 - `spring.datasource.timeBetweenEvictionRunsMillis`:定期检查连接池中空闲连接的间隔时间。 - `spring.datasource.minEvictableIdleTimeMillis`:连接在池中最小空闲时间,超过该时间则将被销毁。 - `spring.datasource.validationQuery`:连接校验SQL。 - `spring.datasource.testWhileIdle`:连接空闲时是否进行校验。 - `spring.datasource.testOnBorrow`:从连接池获取连接时是否进行校验。 - `spring.datasource.testOnReturn`:归还连接给连接池时是否进行校验。 - `spring.datasource.poolPreparedStatements`:是否缓存PreparedStatement。 - `spring.datasource.maxPoolPreparedStatementPerConnectionSize`:缓存PreparedStatement的最大数量。 以上就是Spring Boot中使用Druid连接池的详细配置解析,通过适当调整这些配置项,可以实现对连接池的更好性能和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值