配置项:connectTimeout
- 名称:创建连接超时
- 作用域:连接池初始化时,或连接池无连接,需要创建物理连接时
- 配置方法:在jdbc url中配置 connectTimeout,属于JDBC 驱动的参数,单位ms
- 默认值:无
- 样例:jdbc:mysql://xxx.xx.xx.xxx:3306/xxx?connectTimeout=1000
- 其他说明:这里是操作系统层建立socket连接的超时
配置项:socketTimeout
- 名称:与数据库socket通讯超时
- 作用域:从网络连接中读取数据时
- 配置方法:在jdbc url中配置 socketTimeout,属于JDBC 驱动的参数单位ms
- 默认值:无
- 样例:jdbc:mysql://xxx.xx.xx.xxx:3306/xxx?socketTimeout=60000
- 其他说明:socketTimeout 的值必须最大,否则 连接池 或 Statement 的设置无效。
- 实际上Driver 执行SQL的超时不受连接池 或 Statement的值影响
配置项:loginTimeout
- 名称:连接及登录数据库超时
- 作用域:创建数据库连接或完成后,登录数据库时
- 配置方法:属于JDBC 驱动的参数,在连接池中传入单位s
- 默认值:0
- 样例:loginTimeout: 2
- 其他说明:connectTimeout ==0||connectTimeout >loginTimeout, 连接超时取loginTimeout
配置项:maxWait
- 名称: 获取连接等待时间
- 作用域:应用操作SQL时,从dataSource中getConnection()时。
- 配置方法:在数据源配置中设置maxWait,单位ms
- 默认值:-1
- 样例:maxWait: 2000
- 其他说明:
配置项:queryTimeout
- 名称: 查询SQL超时
- 作用域: 执行查询SQL时,设置的超时,需要根据SQL的复杂度设置超时值
- 配置方法:
- 1、在连接池中设置:queryTimeout,优先级 3
- 2、在mybatis配置文件设置默认值:defaultStatementTimeout优先级 2
- 3、在mybatis mapper文件中对每一个sql方法设置timeout值 ,优先级 1
- 4、在JDBC Statement设置 setQueryTimeout ,优先级 1
- 默认值:无
- 样例:queryTimeout: 30
- 其他说明:
配置项:transactionQueryTimeout
- 名称:事务中操作SQL超时
- 作用域:执行查询SQL时,这个是针对带事务的SQL超时设置,这里的事务不是指写操作,实际上是指Connection是否自动提交(是否有事务)
- 配置方法:连接池中配置默认值: transactionQueryTimeout ,单位s
- 默认值:无
- 样例:transactionQueryTimeout: 60
- 其他说明:若未设置transactionQueryTimeout,则取queryTimeout的值