JDBC常用参数参考
autoBalance
作用:JDBC可以通过URL中设置多个数据库节点,实现对多节点的访问。通过设置负载均衡算法,JDBC可以在建立连接时,依照特定规则将客户端与多个节点的连接依次建立在URL中配置的各个节点上,以此实现连接的负载均衡。为false时,JDBC始终与URL中配置的同一个满足建连条件的节点建立连接。
目前,JDBC提供了roundrobin、priority roundrobin、leastconn、shuffle四种负载均衡模式,具体如下:
- roundrobin:轮询模式,即与各候选节点轮流建立连接。取值:"roundrobin"、"true"、"balance"。
- priority roundrobin:带优先级的轮询模式,优先对前n个候选节点做轮询建连,取值:"priority[n]",n为非负整数。
- leastconn:最小连接模式,对候选节点依照各节点的有效连接数做优先级排序,优先与连接数少的节点建立连接,该方法只会统计通过当前驱动在当前集群内使用leastconn模式建立的连接。取值:"leastconn"。
- shuffle:随机模式,即随机选择候选节点建立连接,取值:"shuffle"。
建议: 默认值为false。
fetchsize
原理:fetchsize在设置为n后,数据库服务器端在执行查询后,调用者在执行resultset.next()的时候,JDBC会先与服务器端进行通信,取n条数据到JDBC的客户端中,然后返回第一条给调用者,当调用者取到第n+1条数据的时候,会再次到数据库服务端去拿数据。
作用: 避免数据库一次把所有结果全部传输到客户端,占用客户端太多内存资源。
建议: 建议根据自身的业务查询数据数量和客户端机器内存情况来配置此参数,默认值为0,表示查询全部数据。
loginTimeout
作用:控制与数据库建立socket连接的时间,超过阈值则退出。
建议:默认值为0,表示无限期等待服务端返回。
socketTimeout
作用:控制套接字操作超时值,如果业务语句执行或者从网络读取数据流时间超过此阈值,则连接中断(即执行SQL超过规定时间,没有数据返回的时候)。
建议:该参数限制单语句最长的执行时间,单语句执行超过该值则会超时报错退出,建议根据业务特征进行配置。
receiveBufferSize
作用:socket读取缓冲区的数据大小。
建议:默认值为-1,表示不限制缓冲区大小。
sendBufferSize
作用:socket写入缓冲区的数据大小。
建议:默认值为-1,表示不限制缓冲区大小。