原文:Druid连接池参考配置和说明,以下是一个参考的连接池配置:通常来说,只需要修改initialSize、minIdle、maxActive。

如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false。

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --><property name="url" value="${jdbc_url}" /><property name="username" value="${jdbc_user}" /><property name="password" value="${jdbc_password}" /><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="1" /><property name="minIdle" value="1" /> <property name="maxActive" value="20" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="60000" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><property name="validationQuery" value="SELECT 'x'" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><!-- 打开PSCache,并且指定每个连接上PSCache的大小 --><property name="poolPreparedStatements" value="true" /><property name="maxPoolPreparedStatementPerConnectionSize" value="20" /><!-- 配置监控统计拦截的filters --><property name="filters" value="stat" />
</bean>

DruidDataSource配置属性说明列表

DruidDataSource配置兼容DBCP,但个别配置的语意有所区别。

配置 缺省值 说明
name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。
如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this). 
另外配置此属性至少在1.0.5版本中是不起作用的,强行设置name会出错
详情-点此处。
url 连接数据库的url,不同数据库不一样。例如:
mysql : jdbc:mysql://10.20.153.104:3306/druid2 
oracle : jdbc:oracle:thin:@10.20.149.85:1521:ocnauto
username 连接数据库的用户名
password

连接数据库的密码。如果你不希望密码直接写在配置文件中,

可以使用ConfigFilter。详细看这里:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

driverClassName 根据url自动识别

这一项可配可不配,如果不配置druid会根据url自动识别dbType

,然后选择相应的driverClassName

initialSize 0

初始化时建立物理连接的个数

。初始化发生在显示调用init方法,

或者第一次getConnection时

maxActive 8 最大连接池数量
maxIdle 8 已经不再使用,配置了也没效果
minIdle 最小连接池数量
maxWait

获取连接时最大等待时间,单位毫秒。

配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。

poolPreparedStatements false

是否缓存preparedStatement,也就是PSCache。

PSCache对支持游标的数据库性能提升巨大,比如说oracle。

在mysql下建议关闭。

maxOpenPreparedStatements -1

要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true

。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100

validationQuery 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。
testOnBorrow true 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
testOnReturn false 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
testWhileIdle false

建议配置为true,不影响性能,并且保证安全性

。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。

timeBetweenEvictionRunsMillis 1分钟(1.0.14) 有两个含义:

1) Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接

2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明

numTestsPerEvictionRun 不再使用,一个DruidDataSource只支持一个EvictionRun
minEvictableIdleTimeMillis 30分钟(1.0.14) 连接保持空闲而不被驱逐的最长时间
connectionInitSqls 物理连接初始化的时候执行的sql
exceptionSorter 根据dbType自动识别 当数据库抛出一些不可恢复的异常时,抛弃连接
filters 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:
监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall
proxyFilters 类型是List<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系

相关链接:springboot集成druid连接池(数据库密码加密)

Druid连接池参考配置和说明相关推荐

  1. mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...

    项目目录结构 1. 导入依赖 创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖: org.springframeworkgroupId& ...

  2. SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面

    一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Login ...

  3. druid连接池参数配置不当引起接口耗时长

    负责的消息中心推送服务出现接口耗时较长的现象,结合链路系统排查,发现在获取数据库连接这一步耗时很久 查看应用的数据库连接池监控,发现 连接池中的连接数变化频繁,有偶尔的等待连接的情况(与上述接口耗时慢 ...

  4. Druid 连接池的实用 配置详解

    Druid连接池参数配置详解 druid为阿里巴巴的数据源,(数据库连接池),集合了c3p0.dbcp.proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况. DRU ...

  5. 数据连接池默认配置带来的坑testOnBorrow=false,cloes_wait 终于解决了

    首先说一下自己程序中遇到的问题,前一段新写了一个项目,主要为方便公司业务切库做准备,为其他项目提供接口(spring boot 项目<spring boot + mongo data jpa+m ...

  6. druid连接池mysql自动关闭_druid连接池

    近期一直报连接池连接的错误,主要就是那个什么last packet 多少ms以前. 所以就研究了下. druid连接池和mysql的连接关系可以简单理解为下面的案例. 有10个接线员A和远程10个接口 ...

  7. 应用使用Druid连接池经常性断链问题分析

    前段时间有应用使用Druid连接池经常的提示断链报错,整个问题排查分析过程很有意思.这里将Druid连接池.数据库层以及负载均衡层的配置分析下,记录整个问题的分析过程,同时梳理下Druid连接池的配置 ...

  8. Spring Boot--Druid连接池的配置方法

    原文网址:Spring Boot--Druid连接池的配置方法_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Spring Boot的Druid连接池的配置方法. Druid 是阿里巴巴开源的 ...

  9. JDBC的API与德鲁伊Druid连接池配置

    JDBC的API DriverManager  : 管理驱动,创建连接. Connection : 一个数据库连接,通过connection获取statement对象 Statement : 执行sq ...

最新文章

  1. GD32定时器输入捕获例程
  2. java jsp 脚本 声明 表达式 简介
  3. jquery判断页面、图片是否加载完成
  4. 产品分析报告|读书新贵——《网易蜗牛读书》
  5. wx:for-item循环数组失败
  6. 阿里二面:你来设计一下 Flink 性能调优?
  7. 2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
  8. css 块元素、内联元素、内联块元素
  9. 329例精选matlab算法原理及源码详解——老生谈算法
  10. The `certs(%1$s)` contains the merchant‘s certificate serial number(%2$s) which is not allowed here.
  11. C++_华氏度转换摄氏度
  12. JDBC驱动与MySQL版本不兼容的问题
  13. 干货|我的三年产品基本功之PRD文档攥写
  14. NetBeans的学习资源
  15. 人工智能的顶会有哪些
  16. Python机器学习:泰坦尼克号获救预测一
  17. 实名核验类API推荐
  18. Linux基础入门教程
  19. fabric环境部署错误:ERRO 09c Principal deserialization failure (the supplied identity is not valid: x509
  20. 一文读懂Android View事件分发机制

热门文章

  1. matlab mstg函数,matlabfilter
  2. 什么是“中心化”和“去中心化”?区块链是怎么实现去中心化的?
  3. 养成好习惯,戒掉坏习惯
  4. 在线语音转文字如何进行在线转换的
  5. celery:File /home/hadoop/.virtualenvs/Django01/lib/python3.7/site-packages/fdfs_client/utils.py
  6. Run-Time Check Failure #3 - The variable 'p' is being used without being initialized.
  7. Ubuntu 18.04将语言改为中文(简体)
  8. 微信小程序-一次性订阅消息推送
  9. Python项目实战:下载腾讯漫画的脚本及源码【女朋友在也不担心我花钱购买漫画了】
  10. PCIe link up bug 分析