springboot配置mysql druid连接池,以及连接池参数解释

前置

  • springboot 项目
  • java
  • mysql
  • druid 连接池

配置方式

在 springboot 的 application.yml 中配置基本方式

# Druid 配置(Spring Boot YAML 格式)
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testdb?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 60000
      time-between-eviction-runs-millis: 60000
      validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false

参数解释

参数名说明默认值推荐值
连接池配置:
initialSize初始化时创建的物理连接数0如 5
minIdle最小空闲连接;0通常设置为 5~10
maxActive最大活跃连接数(同时可使用的连接数上限)8如 20~100
maxWait获取连接的最大等待时间(毫秒),超时抛出异常。-1 无限等待设置为 5000~60000,避免线程长时间阻塞
连接验证和保活:
validationQuery检测连接是否有效的 SQL(如 SELECT 1)SELECT 1
testWhileIdle空闲时检查连接有效性truetrue
连接回收与驱逐:
timeBetweenEvictionRunsMillis空闲连接检查间隔(毫秒),举例子:如果一个连接在 10:00 被归还到池中,且 timeBetweenEvictionRunsMillis 为 60 秒,则在 10:01 时,该连接的空闲时间已超过阈值,会触发检测60000(1分钟)60000(1分钟)
minEvictableIdleTimeMillis空闲连接的最小存活时间(超过此值可能被驱逐);空闲连接数 > minIdle 且 空闲时间 > 该值,回收多余的空闲连接1800000(30分钟)1800000(30分钟)
maxEvictableIdleTimeMillis空闲连接的最大存活时间(超过此值强制驱逐);空闲时间 > 该值,强制回收所有超时的空闲连接25200000(7小时)25200000(7小时)
性能优化:
poolPreparedStatements是否缓存 PreparedStatementfalse高频查询时设为 true
maxPoolPreparedStatementPerConnectionSize每个连接缓存的 PreparedStatement 数量10自定义设置
性能优化:
removeAbandoned是否回收未归还的连接(如程序异常退出)false,默认 false 是因为其对性能有影响,而且有些业务处理中连接就是很久未归还,默认如果是 true 会带来业务困扰高并发下设置true
removeAbandonedTimeout回收未归还连接的超时时间(秒)300自定

空闲连接:当一个连接使用完毕,并通过相应的归还机制(例如关闭连接对象)返回到连接池中时,它就成为了空闲连接,等待下一次被获取和使用
活跃连接:未归还到连接池的
空闲时:定义空闲时,即上一次连接归还,到下一次连接被请求使用 之间的时间

在 Python 中,可以使用 statsmodels 模块中的 OLS 类来进行OLS回归模型的拟合和预测。下面是一个简单的示例代码: ```python import numpy as np import pandas as pd import statsmodels.api as sm # 生成随机数据 np.random.seed(123) X = np.random.rand(100) Y = 2*X + 0.5 + np.random.normal(0, 0.1, 100) # 将数据存放在DataFrame对象中 data = pd.DataFrame({'X': X, 'Y': Y}) # 添加截距项 data = sm.add_constant(data) # 拟合OLS回归模型 model = sm.OLS(data['Y'], data[['const', 'X']]) result = model.fit() # 输出回归结果 print(result.summary()) ``` 在上面的代码中,我们首先生成了一个简单的随机数据集,其中 X 是自变量,Y 是因变量。然后,我们将数据存放在了一个 pandas 的 DataFrame 对象中,并使用 sm.add_constant() 函数添加了截距项。接着,我们使用 sm.OLS() 函数拟合了OLS回归模型,并将结果保存在了 result 变量中。最后,我们使用 result.summary() 方法输出了回归结果的详细信息。 需要注意的是,在使用 statsmodels 进行OLS回归模型拟合时,需要显式地添加截距项,否则结果会有偏差。此外,我们还可以使用 result.predict() 方法来进行预测,即: ```python # 进行预测 new_data = pd.DataFrame({'X': [0.1, 0.2, 0.3]}) new_data = sm.add_constant(new_data) prediction = result.predict(new_data) # 输出预测结果 print(prediction) ``` 在上面的代码中,我们首先生成了一个新的数据集 new_data,然后使用 result.predict() 方法对其进行预测,并将结果保存在了 prediction 变量中。最后,我们使用 print() 函数输出了预测结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值