首页 > 数据库 >数据库连接关键参数推荐配置

数据库连接关键参数推荐配置

时间:2024-02-21 14:25:15浏览次数:32  
标签:jdbc minIdle 数据库 配置 druid 12 参数 timeout 连接

 一、MySQL连接参数配置(druid)

1、关键参数配置
  • 连接池大小
a)对于大部分OLTP应用,推荐如下配置: jdbc.druid.initialSize=4 jdbc.druid.minIdle=4 jdbc.druid.maxActive=12 b)针对高并发的api接口,避免瞬间创建大量连接,推荐设置 minIdle = initSize = maxActive jdbc.druid.initialSize=12 jdbc.druid.minIdle=12 jdbc.druid.maxActive=12 其中,maxActive可根据实际情况调整到最高24,并且满足: maxActive < 600/${n_app_instances} 说明:在没有慢查询情况下,SQL执行时间基本在5ms以内,单个连接SQL QPS:1000ms/5ms = 200,若配置 maxActive=12,单个应用实例可以输出SQL QPS:12*200 = 2400
  • 获取连接最大等待时长
druid获取连接等待超时,推荐3000,单位毫秒
  • jdbc.druid.maxWait=3000
    jdbc connect timeout
建立到MySQL Server的超时时间。推荐2000,单位毫秒
  • jdbc socket timeout
jdbc I/O socket read/write超时时间,防止因网络异常导致driver一直阻塞(dead connection),同时,为避免在获取InnoDB行锁超时之前被异常中断,不能配置低于120s(innodb_lock_wait_timeout) a)高并发API服务,建议配置150000,单位毫秒(不能低于120000),2.5分钟可检测并恢复问题 jdbc:mysql://x.x.x.x:3306/db?connectTimeout=2000&socketTimeout=150000 b)后台系统视具体情况而定(如数据导出业务,根据需要可设置socketTimeout=600000) jdbc:mysql://x.x.x.x:3306/db?connectTimeout=2000&socketTimeout=600000 若不显式配置socketTimeout,dead conneciton在15分钟后才能被检测到(参考:TCP Timers
  • statement timeout,需低于上述 jdbc socket timeout
参考:为应用配置SQL timeout
  • 连接池连接检测策略
推荐配置:只在空闲时检测 jdbc.druid.validationQuery=SELECT 1 jdbc.druid.testWhileIdle=true jdbc.druid.testOnBorrow=false jdbc.druid.testOnReturn=false
2、配置示例
参考wiki:MySQL连接池推荐配置
3、druid版本
建议使用最新版本
4、jdbc版本
系列 小版本
5.1.* 5.1.47及以上版本
6.0.* 禁止使用,官方已停止维护
8.0.* 8.0.13及以上版本(禁用8.0.22含bug)
5、其他问题
关于在更新JDK版本后插入mysql时间与本地时间相差13或14小时的问题

二、Redis连接参数配置

1、关键参数配置
  • testOnBorrow,testOnReturn,testWhileIdle
  • testOnBorrow=false testOnReturn=false testWhileIdle=true
    maxTotal,maxIdle,minIdle
a)对大多数应用,推荐配置如下: maxTotal=12 maxIdle=8 minIdle=4 b)针对高并发的api接口,避免瞬间创建大量连接,推荐使用固定大小连接池,配置如下: maxTotal=12 maxIdle=12 minIdle=12 说明:与MySQL类似,Redis也有connect timeout、socket timeout相关配置,若Java应用使用的是JedisPool,其默认配置了2s,参数合理,推荐使用(不显式配置即可),显式配置建议:300ms ~ 3s
2、配置示例
参考wiki:Dmall Redis 开发规范V1 参数详情:JedisPool资源池优化  
3、驱动
推荐使用最新驱动
4、其他问题
库请使用db0 spring.redis.database=0

 

标签:jdbc,minIdle,数据库,配置,druid,12,参数,timeout,连接
From: https://www.cnblogs.com/liyanbofly/p/18025090

相关文章

  • 2024年2月中国数据库排行榜:PolarDB夺魁首登顶,TiDB攀升回探花
    银装素裹覆大地,春意初醒待来临。2024年2月墨天轮中国数据库流行度榜单出炉,表现最亮眼的无疑是PolarDB,其自23年7月以来一路高歌猛进,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势,OceanBase、TiDB紧接拿下榜眼探花。榜单前十中,开源与商业平分秋色、各家数据库乘云直上,你追我赶......
  • 【性能测试】性能测试工具LoadRunner,参数化关联。全md文档笔记(已分享文档代码)
    本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1.LoadRunner介绍,2.脚本录制、运行、参数化,3.关联、检查点、事务......
  • 龙年-数据库时间类型字段精度问题 datetime类型的精度
    数据库时间类型字段精度问题理论DatetimeTimestamp保存毫秒防止精度丢失数据库字段为DATETIME(3)时可以保存毫秒。工程经验当数据库为MariaDb10.x.x,则需要jdbc驱动需更换为mariadbconnnector,或者Mariadb相应Mysql数据库版本高于5.6.4则无需更改。DATETIME(3)......
  • 超参数选择方法
    (个人学习所用,内容来源于网络,侵权删)超参数选择方法猜测和检查根据直觉选择一个超参数,看是否有效,持续进行。网格搜索设置一定范围均匀分布的一组值,挨个尝试。随机搜索让计算机随机挑选一组值。贝叶斯优化使用像MATLAB的bayesopt之类的工具来自动选择最佳参数,然......
  • 工业实时关系型数据库 Historian
    WonderwareHistorian 软件,早先发布的名称为InSQL(IndustrialSQLServer)。是应用于制造业工业企业的一种高性能实时数据库,能提供无与伦比的可扩展性,支持多达500,000条标签,与以往产品相比,具有更大的检索吞吐量。Historian可以配置为单一的数据收集和集合系统,也可作为更大......
  • xxl_job系列---【GLUE(shell)模式如何传多个参数,并被shell接收】
    1.场景我需要传入多个参数,在执行任务时传入的任务参数用逗号隔开,到shell中都被$1当做字符串接收到了,没办法,只能在shell中截取字符串,截成多个参数。2.编辑入参点击“任务管理”->“操作”->“编辑”->“任务参数”:afp,date+%Y%m,zhangsan3.编辑shell脚本点击“任务管理”->......
  • 在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
    在Kubernetes(k8S)中,当一个Pod包含多个容器时,可以通过kubectlexec命令连接到指定的容器。kubectlexec命令允许您在运行中的Pod中执行命令或打开交互式shell。要连接到多容器Pod中的特定容器,请按照以下格式执行命令:kubectlexec-it<pod-name>-c<container-nam......
  • mysql 数据库安装使用笔记
    1.下面操作的是mysql8.0.20版本免安装版本 2.解压以后CMD管理权限到路径下D:\rujian\mysql-8.0.20-winx64\bin <1>.启动mysql命令:netstartmysql <2>.停止mysql命令:netstopmysql 3.修改初始密码以管理员身份新开cmd,进入mysql安装的bin目录后执行命令:......
  • linux 中国 xargs 标准化输出参数
     001、[root@pc1tmp]#echo{1..30}|xargsprintf"%02d%03d\n"01002##xargs标准化输出参数0300405006070080901011012130141501617018190202102223024250262702829030 002、[root@pc1tmp]#echo{1........
  • orchard core 开启openid 使用uniapp结合oidc-client 作为客户端连接
    官方的项目地址:https://github.com/onestar1/OrchardSkills.OrchardCore.OIDC.Vue.js/tree/main/OrchardSkills.OrchardCore.MaterialDesignTheme操作步骤:单独clonehttps://github.com/OrchardSkills/OrchardSkills.OrchardCore.MaterialDesignTheme1、打开Recipes目录下......