## Druid 数据库连接池配置详解### 简介Druid 是阿里巴巴开源的一款高性能数据库连接池,它提供了强大的监控和扩展功能,在 Java 应用中广泛使用。正确配置 Druid 连接池对于保证数据库访问性能和稳定性至关重要。本文将详细介绍 Druid 连接池的常用配置项及其作用,帮助你更好地使用 Druid。### 核心配置#### 1. 数据源配置
url:
数据库连接 URL,格式通常为 `jdbc:mysql://host:port/database`。
username:
数据库用户名。
password:
数据库密码。
driverClassName:
JDBC 驱动类名,例如 `com.mysql.cj.jdbc.Driver`。#### 2. 连接池大小配置
initialSize:
连接池初始化大小,即启动时创建的连接数。
minIdle:
连接池最小空闲连接数,低于该值时会创建新连接。
maxActive:
连接池最大连接数,超过该值时获取连接会阻塞或抛出异常。#### 3. 连接测试配置
testOnBorrow:
从连接池获取连接时是否进行测试,建议设置为 `true`。
validationQuery:
用于测试连接的 SQL 语句,例如 `SELECT 1`。
validationQueryTimeout:
验证连接的超时时间,单位为秒。#### 4. 连接有效性配置
maxWait:
获取连接的最大等待时间,单位为毫秒,超过该时间会抛出异常。
timeBetweenEvictionRunsMillis:
连接池空闲连接检测周期,单位为毫秒。
minEvictableIdleTimeMillis:
连接最小空闲时间,单位为毫秒,低于该值的空闲连接会被回收。
keepAlive:
是否保持连接活跃,开启后会定时发送心跳包。### 高级配置#### 1. 连接泄露检测
removeAbandoned:
是否开启连接泄露检测,建议开启。
removeAbandonedTimeout:
连接被认为泄露的超时时间,单位为秒。
logAbandoned:
是否记录连接被认为泄露的堆栈信息,方便排查问题。#### 2. SQL 监控
filters:
配置 SQL 过滤器,可以用于 SQL 执行时间统计、慢 SQL 记录等。
connectionProperties:
设置 JDBC 连接属性,例如 `useUnicode=true&characterEncoding=UTF-8`。#### 3. Druid 监控Druid 提供了强大的监控功能,可以通过配置 `StatFilter` 来实现。
slowSqlMillis:
定义慢 SQL 的阈值,单位为毫秒。
logSlowSql:
是否打印慢 SQL 日志。
mergeSql:
是否合并相同 SQL 的统计信息。### 配置示例以下是使用 properties 文件配置 Druid 连接池的示例:```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.max-wait=60000spring.datasource.druid.test-on-borrow=true spring.datasource.druid.validation-query=SELECT 1spring.datasource.druid.remove-abandoned=true spring.datasource.druid.remove-abandoned-timeout=180 spring.datasource.druid.log-abandoned=truespring.datasource.druid.filters=stat spring.datasource.druid.connection-properties=druid.stat.slowSqlMillis=5000 ```### 总结Druid 连接池提供了丰富的配置选项,可以根据实际需求进行灵活配置。合理配置 Druid 连接池能够有效提高数据库访问性能和稳定性。在配置过程中,建议参考官方文档并进行充分测试,以找到最适合应用场景的配置方案。
Druid 数据库连接池配置详解
简介Druid 是阿里巴巴开源的一款高性能数据库连接池,它提供了强大的监控和扩展功能,在 Java 应用中广泛使用。正确配置 Druid 连接池对于保证数据库访问性能和稳定性至关重要。本文将详细介绍 Druid 连接池的常用配置项及其作用,帮助你更好地使用 Druid。
核心配置
1. 数据源配置* **url:** 数据库连接 URL,格式通常为 `jdbc:mysql://host:port/database`。 * **username:** 数据库用户名。 * **password:** 数据库密码。 * **driverClassName:** JDBC 驱动类名,例如 `com.mysql.cj.jdbc.Driver`。
2. 连接池大小配置* **initialSize:** 连接池初始化大小,即启动时创建的连接数。 * **minIdle:** 连接池最小空闲连接数,低于该值时会创建新连接。 * **maxActive:** 连接池最大连接数,超过该值时获取连接会阻塞或抛出异常。
3. 连接测试配置* **testOnBorrow:** 从连接池获取连接时是否进行测试,建议设置为 `true`。 * **validationQuery:** 用于测试连接的 SQL 语句,例如 `SELECT 1`。 * **validationQueryTimeout:** 验证连接的超时时间,单位为秒。
4. 连接有效性配置* **maxWait:** 获取连接的最大等待时间,单位为毫秒,超过该时间会抛出异常。 * **timeBetweenEvictionRunsMillis:** 连接池空闲连接检测周期,单位为毫秒。 * **minEvictableIdleTimeMillis:** 连接最小空闲时间,单位为毫秒,低于该值的空闲连接会被回收。 * **keepAlive:** 是否保持连接活跃,开启后会定时发送心跳包。
高级配置
1. 连接泄露检测* **removeAbandoned:** 是否开启连接泄露检测,建议开启。 * **removeAbandonedTimeout:** 连接被认为泄露的超时时间,单位为秒。 * **logAbandoned:** 是否记录连接被认为泄露的堆栈信息,方便排查问题。
2. SQL 监控* **filters:** 配置 SQL 过滤器,可以用于 SQL 执行时间统计、慢 SQL 记录等。 * **connectionProperties:** 设置 JDBC 连接属性,例如 `useUnicode=true&characterEncoding=UTF-8`。
3. Druid 监控Druid 提供了强大的监控功能,可以通过配置 `StatFilter` 来实现。* **slowSqlMillis:** 定义慢 SQL 的阈值,单位为毫秒。 * **logSlowSql:** 是否打印慢 SQL 日志。 * **mergeSql:** 是否合并相同 SQL 的统计信息。
配置示例以下是使用 properties 文件配置 Druid 连接池的示例:```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.max-wait=60000spring.datasource.druid.test-on-borrow=true spring.datasource.druid.validation-query=SELECT 1spring.datasource.druid.remove-abandoned=true spring.datasource.druid.remove-abandoned-timeout=180 spring.datasource.druid.log-abandoned=truespring.datasource.druid.filters=stat spring.datasource.druid.connection-properties=druid.stat.slowSqlMillis=5000 ```
总结Druid 连接池提供了丰富的配置选项,可以根据实际需求进行灵活配置。合理配置 Druid 连接池能够有效提高数据库访问性能和稳定性。在配置过程中,建议参考官方文档并进行充分测试,以找到最适合应用场景的配置方案。