云服务器内容精选

  • JDBC JDBC实例必须指定数据库,一旦实例创建,无法切换数据库。 单条SQL语句的长度不允许超过2G字节,业务应考虑通信成本,建议单条SQL语句不超过5K行。 不支持对DDL使用Prepare Execute执行方式。 fetchsize必须要在autocommit关闭情况下使用,否则fetchsize配置无效。 使用默认GUC参数,避免通过JDBC发送SET请求修改GUC参数。 更多说明请参考GUC参数编程规范。 必须使用Prepare Execute方式执行查询语句,提高执行效率。 JDBC客户端所在主机时区、数据库集群所在主机时区和集群配置过程中的时区,三者应保持一致。 如果在连接中创建了临时表,那么在将连接归还给连接池之前,必须将临时表删除,避免业务出错。 合理设置prepareThreshold,如果query语句十分固定,建议设置为1。 建议设置连接参数autobalance=true,开启CN负载均衡功能,并中设置多个CN连接地址(使用逗号分隔)。 一旦开启autobalance,JDBC DRIVER会尝试将JDBC connection分配到不同的CN节点上。 设置多个CN连接地址的目的是避免JDBC DRIVER在首次获取集群CN列表时,因所设置的CN节点故障而失败。 一旦首次成功获取,便不会再依赖连接参数中指定的CN列表,而是根据实时获取的集群CN列表,每隔一段时间,选取连接其中有效的CN获取最新的CN列表。 应根据业务上层请求超时时间合理设置JDBC连接超时时间,避免作业完成或常超作业持续占用数据库资源 超时参数包括loginTimeout、connectTimeout、socketTimeout等。 loginTimeout:Integer类型。指建立数据库连接的等待时间。超时时间单位为秒。 connectTimeout:Integer类型。用于连接CN操作的超时值。如果连接到CN花费的时间超过此值,则连接断开。超时时间单位为秒,默认值为0,表示已禁用,timeout不发生。 socketTimeout:Integer类型。用于socket读取操作的超时值。如果从CN读取所花费的时间超过此值,则连接关闭。超时时间单位为秒,默认值为0,表示已禁用,timeout不发生。 cancelSignalTimeout:Integer类型。发送取消消息本身可能会阻塞,此属性控制用于取消命令的“connect超时”和“socket超时”。超时时间单位为秒,默认值为10秒。 tcpKeepAlive:Boolean类型。启用或禁用TCP保活探测功能。默认为false。 以上参数可以在JDBC连接串或者property连接属性中配置,例如: 在连接串中配置: jdbc:postgresql://host:port/postgres?tcpKeepAlive=true 在property中配置: Properties info = new Properties(); Info.setProperty("tcpKeepAlive", true); 父主题: 客户端编程规范
  • JDBC JDBC实例必须指定数据库,一旦实例创建,无法切换数据库。 单条SQL语句的长度不允许超过2G字节,业务应考虑通信成本,建议单条SQL语句不超过5K行。 不支持对DDL使用Prepare Execute执行方式。 fetchsize必须要在autocommit关闭情况下使用,否则fetchsize配置无效。 使用默认GUC参数,避免通过JDBC发送SET请求修改GUC参数。 更多说明请参考GUC参数编程规范。 必须推荐使用Prepare Execute方式执行查询语句,提高执行效率。 JDBC客户端所在主机时区、数据库集群所在主机时区和集群配置过程中的时区,三者应保持一致。 如果在连接中创建了临时表,那么在将连接归还给连接池之前,必须将临时表删除,避免业务出错。 合理设置prepareThreshold,如果query语句十分固定,建议设置为1。 建议设置连接参数autobalance=true,开启CN负载均衡功能,并中设置多个CN连接地址(使用逗号分隔)。 一旦开启autobalance,JDBC DRIVER会尝试将JDBC connection分配到不同的CN节点上。 设置多个CN连接地址的目的是避免JDBC DRIVER在首次获取集群CN列表时,因所设置的CN节点故障而失败。 一旦首次成功获取,便不会再依赖连接参数中指定的CN列表,而是根据实时获取的集群CN列表,每隔一段时间,选取连接其中有效的CN获取最新的CN列表。 应根据业务上层请求超时时间合理设置JDBC连接超时时间,避免作业完成或常超作业持续占用数据库资源 超时参数包括loginTimeout、connectTimeout、socketTimeout等。 loginTimeout:Integer类型。指建立数据库连接的等待时间。超时时间单位为秒。 connectTimeout:Integer类型。用于连接CN操作的超时值。如果连接到CN花费的时间超过此值,则连接断开。超时时间单位为秒,默认值为0,表示已禁用,timeout不发生。 socketTimeout:Integer类型。用于socket读取操作的超时值。如果从CN读取所花费的时间超过此值,则连接关闭。超时时间单位为秒,默认值为0,表示已禁用,timeout不发生。 cancelSignalTimeout:Integer类型。发送取消消息本身可能会阻塞,此属性控制用于取消命令的“connect超时”和“socket超时”。超时时间单位为秒,默认值为10秒。 tcpKeepAlive:Boolean类型。启用或禁用TCP保活探测功能。默认为false。 以上参数可以在JDBC连接串或者property连接属性中配置,例如: 在连接串中配置: jdbc:postgresql://host:port/postgres?tcpKeepAlive=true 在property中配置: Properties info = new Properties();Info.setProperty("tcpKeepAlive", true); 父主题: 客户端编程规范