【数据库】数据库连接池配置 testOnBorrow 以你之姓@ 2022-08-31 04:39 220阅读 0赞 **本文目录** 一、testOnBorrow含义 二、testOnBorrow=false可能导致问题 三、连接池如何判断连接是否有效的? 四、总结 -------------------- Druid是一个由阿里开源的数据库连接池,Druid的配置非常丰富,但是设置不当会对生产环境造成严重影响,比如数据库的CPU使用率飙升会很严重,其实就是因为配置**testOnBorrow**由**false**修改为**true**导致的问题。 # 一、testOnBorrow含义 # **testOnBorrow**:如果为true(默认为false),当应用向连接池申请连接时,连接池会判断这条连接是否是可用的。 # 二、testOnBorrow=false可能导致问题 # 假如连接池中的连接被数据库关闭了,应用通过连接池**getConnection**时,都可能获取到这些不可用的连接,且这些连接如果不被其他线程回收的话;它们不会被连接池废除,也不会重新被创建,占用了连接池的名额,项目如果是服务端,数据库链接被关闭,客户端调用服务端就会出现大量的**timeout**,客户端设置了超时时间,会主动断开,服务端就会出现**close\_wait**。 # 三、连接池如何判断连接是否有效的? # * 常用数据库:使用$\{DBNAME\}ValidConnectionChecker进行判断,比如Mysql数据库,使用MySqlValidConnectionChecker的isValidConnection进行判断 * 其他数据库:则使用validationQuery判断 * 验证不通过则会直接关闭连接,并重新从连接池获取下一条连接。 # 四、总结 # 1.testOnBorrow能够确保我们每次都能获取到可用的连接,但是如果设置为true,则**每次获取连接时候都要到数据库验证连接有效性,这在高并发的时候会造成性能下降**,可以**将testOnBorrow设置成false,testWhileIdle设置成true这样能获得比较好的性能**。 2.testOnBorrow和testOnReturn在生产环境一般是不开启的,主要是性能考虑。失效连接主要通过testWhileIdle保证,如果获取到了不可用的数据库连接,一般由应用处理异常。 完结!
相关 数据库-----数据库连接池 @百度百科 ![Center][] [Center]: /images/20220721/39979dcdad014fb6a1579254a5398d26.png 古城微笑少年丶/ 2022年09月21日 11:56/ 0 赞/ 293 阅读
相关 【数据库】数据库连接池配置 testOnBorrow 本文目录 一、testOnBorrow含义 二、testOnBorrow=false可能导致问题 三、连接池如何判断连接是否有效的? 四、总结 ----------- 以你之姓@/ 2022年08月31日 04:39/ 0 赞/ 221 阅读
相关 数据库连接池 连接池原理 连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、治理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立 水深无声/ 2022年08月02日 09:37/ 0 赞/ 31 阅读
相关 数据库连接池 author:skate time:2010-10-13 -------------------- 数据库连接池的工作原理 连接池就是连接数据库对象的缓冲存 柔情只为你懂/ 2022年07月14日 16:46/ 0 赞/ 17 阅读
相关 数据库连接池 连接池:把连接放在一个池里,它里面有很多连接 会给你空闲的连接使用,Java从数据源里面的得到连接 (线程池把连接放进去,会有连接的标志--占用/空闲 你去拿时-- 给你/等 一时失言乱红尘/ 2022年05月16日 00:16/ 0 赞/ 348 阅读
相关 数据库连接池 public class java_数据库连接池 { //1.定义变量 //管理数据连接池对象 private ComboPool 妖狐艹你老母/ 2022年05月11日 14:24/ 0 赞/ 220 阅读
相关 数据库连接池 连接池直接使用别人提供的就可以,需要做的就是导入jar包和配置文件的使用按照他们的规范 jar包有 (fastjson.jar包可以不要,这个是使用json和前端进行数据交 快来打我*/ 2022年05月04日 03:27/ 0 赞/ 346 阅读
相关 数据库连接池 要是考虑到JDBC连接中用到Connection 在每次对数据进行增删查改都要开启、关闭,在实例开发项目中,浪费了很大的资源。因此采用连接池技术。 //数据库连接 pub 秒速五厘米/ 2022年02月14日 00:27/ 0 赞/ 390 阅读
相关 数据库连接池 今日知识 1. c3p0和Druid使用 2. DBUtils使用 3. SpringJDBC轻量级框架 4. 总结 c3p0和Dru 小鱼儿/ 2021年11月29日 10:36/ 0 赞/ 467 阅读
相关 数据库连接池 传统的jdbc连接数据库方式如下: 我们需要几个步骤:注册 JDBC 驱动程序注册( Class.forName(DRIVER\_NAME) ),通过DriverManag 爱被打了一巴掌/ 2021年09月10日 05:40/ 0 赞/ 580 阅读
还没有评论,来说两句吧...