Druid连接池参考配置和说明
原文: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连接池参考配置和说明相关推荐
- mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...
项目目录结构 1. 导入依赖 创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖: org.springframeworkgroupId& ...
- SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面
一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Login ...
- druid连接池参数配置不当引起接口耗时长
负责的消息中心推送服务出现接口耗时较长的现象,结合链路系统排查,发现在获取数据库连接这一步耗时很久 查看应用的数据库连接池监控,发现 连接池中的连接数变化频繁,有偶尔的等待连接的情况(与上述接口耗时慢 ...
- Druid 连接池的实用 配置详解
Druid连接池参数配置详解 druid为阿里巴巴的数据源,(数据库连接池),集合了c3p0.dbcp.proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况. DRU ...
- 数据连接池默认配置带来的坑testOnBorrow=false,cloes_wait 终于解决了
首先说一下自己程序中遇到的问题,前一段新写了一个项目,主要为方便公司业务切库做准备,为其他项目提供接口(spring boot 项目<spring boot + mongo data jpa+m ...
- druid连接池mysql自动关闭_druid连接池
近期一直报连接池连接的错误,主要就是那个什么last packet 多少ms以前. 所以就研究了下. druid连接池和mysql的连接关系可以简单理解为下面的案例. 有10个接线员A和远程10个接口 ...
- 应用使用Druid连接池经常性断链问题分析
前段时间有应用使用Druid连接池经常的提示断链报错,整个问题排查分析过程很有意思.这里将Druid连接池.数据库层以及负载均衡层的配置分析下,记录整个问题的分析过程,同时梳理下Druid连接池的配置 ...
- Spring Boot--Druid连接池的配置方法
原文网址:Spring Boot--Druid连接池的配置方法_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Spring Boot的Druid连接池的配置方法. Druid 是阿里巴巴开源的 ...
- JDBC的API与德鲁伊Druid连接池配置
JDBC的API DriverManager : 管理驱动,创建连接. Connection : 一个数据库连接,通过connection获取statement对象 Statement : 执行sq ...
最新文章
- GD32定时器输入捕获例程
- java jsp 脚本 声明 表达式 简介
- jquery判断页面、图片是否加载完成
- 产品分析报告|读书新贵——《网易蜗牛读书》
- wx:for-item循环数组失败
- 阿里二面:你来设计一下 Flink 性能调优?
- 2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
- css 块元素、内联元素、内联块元素
- 329例精选matlab算法原理及源码详解——老生谈算法
- The `certs(%1$s)` contains the merchant‘s certificate serial number(%2$s) which is not allowed here.
- C++_华氏度转换摄氏度
- JDBC驱动与MySQL版本不兼容的问题
- 干货|我的三年产品基本功之PRD文档攥写
- NetBeans的学习资源
- 人工智能的顶会有哪些
- Python机器学习:泰坦尼克号获救预测一
- 实名核验类API推荐
- Linux基础入门教程
- fabric环境部署错误:ERRO 09c Principal deserialization failure (the supplied identity is not valid: x509
- 一文读懂Android View事件分发机制
热门文章
- matlab mstg函数,matlabfilter
- 什么是“中心化”和“去中心化”?区块链是怎么实现去中心化的?
- 养成好习惯,戒掉坏习惯
- 在线语音转文字如何进行在线转换的
- celery:File /home/hadoop/.virtualenvs/Django01/lib/python3.7/site-packages/fdfs_client/utils.py
- Run-Time Check Failure #3 - The variable 'p' is being used without being initialized.
- Ubuntu 18.04将语言改为中文(简体)
- 微信小程序-一次性订阅消息推送
- Python项目实战:下载腾讯漫画的脚本及源码【女朋友在也不担心我花钱购买漫画了】
- PCIe link up bug 分析