
阿里数据库连接池Druid配置详解
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
简介:本文详细解析了如何配置阿里巴巴开源数据库连接池Druid,涵盖其核心功能与优化技巧,帮助开发者提升应用性能。
阿里连接池Druid是一个基于Java的数据库连接池实现方案,旨在优化数据库操作性能。本段落详细解析了Druid的各种配置选项及其功能。
name属性用于设定数据源的名字,在多个数据源的情况下有助于通过名字区分监控信息;如果不指定,则系统会自动生成一个默认名称:DataSource- + System.identityHashCode(this)。
jdbcUrl定义连接到特定数据库的URL,不同类型的数据库会有不同的格式。例如,MySQL的URL通常为jdbc:mysql://10.20.153.104:3306/druid2;Oracle则可能是jdbc:oracle:thin:@//10.20.149.85:1521/ocnaut。
username和password分别用于指定数据库连接的用户名与密码。为了安全起见,可以通过ConfigFilter避免直接在配置文件中暴露密码信息。
driverClassName属性指定了特定数据库驱动程序类的名字;Druid可以根据URL自动识别并选择正确的dbType及其对应的Driver。然而,如果希望手动设置,则需要填写此项。
initialSize定义了初始化连接池时创建的物理连接数量,在调用init方法或首次获取连接时生效。
maxActive限制了最大可同时存在的活动链接数。
minIdle设定了最小保持在空闲状态下的连接数目。
maxWait指定了当所有可用连接都被占用且等待队列已满的情况下,请求新连接的最大超时时长(以毫秒计)。启用此选项后,默认使用公平锁机制;若需提高并发效率,则可将useUnfairLock设置为true来切换至非公平模式。
poolPreparedStatements控制是否开启预编译语句的缓存功能。对于支持游标的数据库,如Oracle,PSCache能显著提升性能表现;但MySQL 5.5及以下版本不推荐使用该特性。
maxOpenPreparedStatements当启用PSCache时(即poolPreparedStatements为true),此选项定义了最大允许打开的预编译语句数量。
validationQuery用于指定检查连接有效性的SQL查询指令,必须是一个有效的SELECT语句。如果未配置,则testOnBorrow、testOnReturn和testWhileIdle将不起作用。
testOnBorrow控制是否在每次借出连接时执行验证查询以确认其有效性;启用此功能会带来一定的性能损失。
同理,testOnReturn决定了归还链接前的检查行为。同样地,这也会对系统产生额外负担。
testWhileIdle建议设置为true,并不会显著影响效率却能确保安全性:它会在请求连接时自动进行空闲时间超过timeBetweenEvictionRunsMillis阈值下的有效性检测。
timeBetweenEvictionRunsMillis定义了DruidDataSource中Destroy线程检查连接的周期性间隔,同时也作为testWhileIdle评估标准的一部分。
numTestsPerEvictionRun该属性已被废弃,并且每个DruidDataSource仅支持一个EvictionRun任务执行。
minEvictableIdleTimeMillis设定了连接池内链接保持空闲状态的最小时间限制。
全部评论 (0)


