1、JDBC实例必须指定数据库,一旦实例创建,无法切换数据库。
2、单条SQL语句的长度不允许超过2G字节,业务应考虑通信成本,建议单条SQL语句不超过5K。
3、不支持对DDL使用Prepare Execute执行方式。
4、fetchsize必须要在autocommit关闭情况下使用,否则fetchsize配置无效。
5、使用默认GUC参数,避免通过JDBC发送SET请求修改GUC参数。
1)客户端(如JDBC)应使用默认(全局)参数执行查询,禁用会话级别的GUC参数。
2)通过ODBC或JDBC修改GUC参数时,需注意GUC参数仅会在当前connection中生效,特别是在连接池场景下,容易发生问题,且导致问题定位困难。
3)如果在连接中必须进行GUC参数设置,那么在将连接归还给连接池之前,必须使用
4)SET SESSION AUTHORIZATION DEFAULT;
5)RESET ALL;
6)将连接的状态清空。
6、必须推荐使用Prepare Execute方式执行查询语句,提高执行效率。
7、JDBC客户端所在主机时区、数据库集群所在主机时区和集群配置过程中的时区,三者应保持一致。
8、如果在连接中创建了临时表,那么在将连接归还给连接池之前,必须将临时表删除,避免业务出错。
9、合理设置prepareThreshold,如果query语句十分固定,建议设置为1。
10、建议设置连接参数autobalance=true,开启CN负载均衡功能,并中设置多个CN连接地址(使用逗号分隔)。 一旦开启autobalance,JDBC DRIVER会尝试将JDBC connection分配到不同的CN节点上。设置多个CN连接地址的目的是避免JDBC DRIVER在首次获取集群CN列表时,因所设置的CN节点故障而失败。一旦首次成功获取,便不会再依赖连接参数中指定的CN列表,而是根据实时获取的集群CN列表,每隔一段时间,选取连接其中有效的CN获取最新的CN列表。
11、应根据业务上层请求超时时间合理设置JDBC连接超时时间,避免作业完成或常超作业持续占用数据库资源
jdbc:postgresql://host:port/postgres?tcpKeepAlive=true
Properties info = new Properties();Info.setProperty("tcpKeepAlive", true);
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!