计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

JDBC常用参数参考

更新时间:2024-06-03 GMT+08:00

allowReadOnly

原理:是否可以通过setReadOnly来修改事务访问模式,如果为true则可以修改,如果为false则无法通过此接口来修改,修改语句为:SET SESSION CHARACTERISTICS AS TRANSACTION + READ ONLY / READ WRITE。

建议:保持默认值为true。

autoBalance

原理:设置为true或balance或roundrobin表示开启JDBC负载均衡功能,将应用程序的多个连接均衡到数据库集群中的各个可用CN。首次建连时通过jdbc连接串上配置的IP建连,只要其中有一个可以正常建连就会刷新内部的当前可用的CN列表,之后根据CN列表进行建连,不再依据jdbc连接串中的IP。

建议:建议值为true。

refreshCNIpListTime

原理:新连接建连时会检测当前时间距离上一次刷新时间间隔是否大于此参数的值,如果大于会查询数据库当前可用的CN列表并更新jdbc的CN列表,如果超过此数值但没有新的连接建立,则不会刷新。

建议:默认值10s,建议根据业务需要进行调整,需要配合autoBalance进行使用。

fetchsize

原理fetchsize在设置为n时,数据库服务器端在执行查询后,调用者在执行resultset.next()的时候,JDBC会先与服务器端进行通信,取n条数据到JDBC的客户端中,然后返回第一条给调用者。当调用者取到第n+1条数据的时候,会再次到数据库服务端去取数据。

作用避免了数据库同时把所有结果全部传输到客户端,导致客户端的内存资源不足。

建议:建议根据自身的业务查询数据数量和客户端机器内存情况来配置此参数,设置fetchsize时要关闭自动提交(autocommit=false)模式,否则会导致fetchsize无法生效。

defaultRowFetchSize

作用:fetchsize默认值为0,defaultRowFetchSize会修改fetchsize的默认值。

batchMode

作用:用于确定是否使用batch模式连接。默认值为on,开启后可以提升批量更新的性能,同时批量更新的返回值会发生改变。例如,批量插入三条数据,在开启时返回值为[3,0,0],在关闭后返回值为[1,1,1]。

建议:如果本身业务框架(例如hibernate)在批量更新时会检测返回值,可以通过调整此参数来解决。

loginTimeout

作用:控制与数据库建连时间,其中时间包括connectTimeout和socketTimeoutInConnecting,超过阈值则退出。计算方式为:loginTimeout=(connectTimeout+连接认证时间+初始化语句执行时间)*节点数量,默认值为0。

建议:配置后每次建连都会开启一个异步线程,在连接数较多的情况可能会导致客户端压力增大,可以根据业务酌情调整,建议配置为max(connectTimeout, socketTimeoutInConnecting) * 节点数。

须知:
  • 此参数设置后对于多IP而言,时间是尝试连接IP的时间,可能会出现因为设置的值较小导致后面的IP无法连接的问题。例如设置了三个IP,如果loginTimeout为5s,但前两个IP建连总共用了5s,第三个IP会无法进行连接。
  • 当CPU、内存、I/O负载中的任意一项接近100%时,会出现连接慢的现象,可能会导致连接时间超过阈值的问题,可通过以下方式进行问题排查:
    1. 登录连接慢的物理机或通过管理工具查询资源负载:可通过top命令等确认CPU使用率;通过free命令确认内存使用情况;通过iostat命令确认I/O负载;此外还可以通过cm_agent中的监控日志,以及数据库运维平台中的监测记录进行检查。
    2. 针对短时间内大量慢查询导致的峰值负载场景,可通过[数据库服务器的端口号+1]端口连接,查询pg_stat_activity视图;针对慢查询,可以使用系统函数pg_terminate_backend(pid int)进行查杀会话。
    3. 针对业务量长期超负载情况(即无明显慢查询,或慢查询查杀后但新的查询依然会变成慢查询),应考虑降低业务负载、增加数据库资源的方式进行优化。

cancelSignalTimeout

作用:发送取消消息本身可能会阻塞,此属性控制用于取消命令的“connect超时”和“socket超时”。超时时间单位为秒。主要为了防止连接超时取消时本身执行超时检测。

建议:默认值为10s,建议根据业务进行调整。

connectTimeout

作用:控制建立连接时套接字超时阈值(此时是JDBC通过socket连接到数据的时间,并不是返回connection对象的时间),超过阈值查找下一个IP。

建议:该参数决定了每个节点TCP连接建立的最大超时时间,如果某节点网络故障,与该节点建立连接时会等待connectTimeout超时,然后尝试连接下一个节点。考虑到网络抖动,时延等情况,建议设置为3s。

socketTimeout

作用:控制套接字操作超时阈值,如果业务语句执行或者从网络读取数据流超过此阈值,连接中断(即语句超过规定时间执行,没有数据返回的时候)。

建议:该参数限制单条SQL最长的执行时间,单语句执行超过该值则会超时报错退出,建议根据业务特征进行配置,如果未配置,默认为0,即不会超时。如果不配置该参数,在数据库进程异常情况下,会导致客户端出现长时间等待,建议根据业务可接受的SQL执行时间进行配置。

socketTimeoutInConnecting

作用:控制建连阶段套接字操作超时值,在建连阶段,如果从网络中读取数据流超过此阈值,则尝试查找下一个节点建连。

建议:该参数仅影响建连阶段的socket超时时间,如果未配置,默认为5s。

autosave

作用:值为always时,可以在事务中每个语句前面设置一个savepoint点,在事务中语句执行报错时会返回到最近的上一个savepoint点,让事务中后续语句正常执行,最终正常提交。值为conservative时,每次查询都会设置保存点,但是只会在“statement XXX无效”等情况下回滚并重试。值为never时无保存点。

建议:不建议设置此参数,性能劣化严重。

currentSchema

作用:设置当前连接的schema,如果未设置,则默认schema为连接使用的用户名。

建议:建议配置此参数,业务数据所在的schema。如果schema名包含除字母、数字、下划线之外的特殊字符,建议在schema名上加引号,注意加引号后schema名大小写敏感。如需配置多个schema,要用“,”进行分隔,包含特殊字符的schema也需要加引号处理。

prepareThreshold

作用:默认值为5,如果一个会话连续多次执行同一个SQL,在达到prepareThreshold次数以上时,JDBC将不再对这个SQL发送parse命令,会将其缓存起来,提升执行速度。

建议:默认值为5,根据业务需要进行调整。

preparedStatementCacheQueries

作用:确定每个连接中缓存的查询数,默认情况下是256。若在prepareStatement()调用中使用超过256个不同的查询,则最近最少使用的查询缓存将被丢弃。

建议:默认值为256,根据业务需要进行调整。配合prepareThreshold使用。

blobMode

作用:setBinaryStream方法为不同类型的数据赋值,设置为on时表示为blob类型数据赋值,设置为off时表示为bytea类型数据赋值,默认为on。例如在preparestatement和callablestatement对象中对参数进行赋值操作。

建议:默认值为on。

setAutocommit方法

作用:值为true时,执行每个语句都会自动开启事务,在执行结束后自动提交事务,即每个语句都是一个事务。值为false时,会自动开启一个事务,事务需要通过执行SQL手动提交。

建议:根据业务特征进行调整,如果基于性能或者其它方面考虑,需要关闭autocommit时,需要应用程序自己来保证事务的提交。例如,在指定的业务SQL执行完之后做显式提交,特别是客户端退出之前务必保证所有的事务已经提交。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容