检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发规范 如果用户在APP的开发中,使用了连接池机制,那么需要遵循如下规范。否则,连接池里的连接就是有状态的,会对用户后续使用连接池进行操作的正确性带来影响。 如果在连接中设置了GUC参数,那么在将连接归还连接池之前,必须使用“SET SESSION AUTHORIZATION DEFAULT;RESET
GaussDB(DWS) SQL开发规范 DDL操作规范 INSERT操作规范 UPDATE&DELETE操作规范 SELECT操作规范 父主题: GaussDB(DWS)开发设计规范
建议3.18 SQL语句的长度不要超过64K 违反规范的影响: SQL解析耗时长、维护难度大,如频繁执行会导致日志膨胀严重。 方案建议: 控制业务SQL的长度,避免超过64K。 父主题: GaussDB(DWS) SQL开发规范
INSERT操作规范 规则3.3 INSERT多VALUES批插场景使用COPY替代 违反规范的影响: 多VALUES解析耗时、耗资源,入库效率低。 方案建议: 前端使用COPY类接口(如JDBC的CopyManger等)代替INSERT VALUES。 建议3.4 禁止针对普通列存表进行实时INSERT操作
建议3.18 SQL语句的长度不要超过64K 违反规范的影响: SQL解析耗时长、维护难度大,如频繁执行会导致日志膨胀严重。 方案建议: 控制业务SQL的长度,避免超过64K。 父主题: GaussDB(DWS) SQL开发规范
GaussDB(DWS) SQL开发规范 DDL操作规范 INSERT操作规范 UPDATE&DELETE操作规范 SELECT操作规范 父主题: GaussDB(DWS)开发设计建议
UPDATE&DELETE操作规范 建议3.5 避免并发UPDATE/DELETE行存表的同一行 违反规范的影响: 并发UPDATE/DELETE行存表可能导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 按主键或分布列进行分组UPDATE/DELETE,组间并行,组内串行。
DDL操作规范 建议3.1 DDL操作(CREATE除外)避免在业务高峰期和长事务中执行 违反规范的影响: DDL操作普遍持锁级别高,如ALTER、DROP、TRUNCATE、REINDEX、VACUUM FULL等,执行时会造成业务等锁阻塞。 高峰期执行持锁级别高的DDL操作,造成业务等锁阻塞。
GaussDB(DWS)开发设计规范 GaussDB(DWS)总体开发设计规范 GaussDB(DWS)连接管理规范 GaussDB(DWS)对象设计规范 GaussDB(DWS) SQL开发规范 GaussDB(DWS)外表功能开发规范 GaussDB(DWS)存储过程开发规范 GaussDB(DWS)各对象设计详细规则
INSERT操作规范 规则3.3 INSERT多VALUES批插场景使用COPY替代 违反规范的影响: 多VALUES解析耗时、耗资源,入库效率低。 方案建议: 前端使用COPY类接口(如JDBC的CopyManger等)代替INSERT VALUES。 建议3.4 禁止针对普通列存表进行实时INSERT操作
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示。
GaussDB(DWS)总体开发设计规范 目的 本规范定义了在进行基于GaussDB(DWS)数据库自主开发过程中应遵守的设计、开发准则,以提升开发效率,保证业务的连续性、稳定性。 适用范围 该规范适用于所有基于GaussDDB(DWS)数据库自主开发的场景,包含应用层面的设计与开发、数据库服务层面的设计与开发。
GaussDB(DWS)外表功能开发规范 规则4.1 GDS服务需单独使用服务器部署在DWS集群外 违反规范的影响: GDS如果部署在DWS集群内,会与DWS集群CN/DN节点发生资源争抢,导致双方性能同时劣化。 方案建议: GDS服务单独使用服务器部署在DWS集群外。 GDS所
USER对象设计规范 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如管理员用户,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务
DDL操作规范 建议3.1 DDL操作(CREATE除外)避免在业务高峰期和长事务中执行 违反规范的影响: DDL操作普遍持锁级别高,如ALTER、DROP、TRUNCATE、REINDEX、VACUUM FULL等,执行时会造成业务等锁阻塞。 高峰期执行持锁级别高的DDL操作,造成业务等锁阻塞。
GaussDB(DWS)对象设计规范 DATABASE对象设计规范 USER对象设计规范 SCHEMA对象设计规范 TABLESPACE对象设计规范 TABLE对象设计规范(重点) INDEX对象设计规范(重点) VIEW对象设计规范 父主题: GaussDB(DWS)开发设计规范
GaussDB(DWS)总体开发设计规范 目的 本规范定义了在进行基于GaussDB(DWS)数据库自主开发过程中应遵守的设计、开发准则,以提升开发效率,保证业务的连续性、稳定性。 适用范围 该规范适用于所有基于GaussDDB(DWS)数据库自主开发的场景,包含应用层面的设计与开发、数据库服务层面的设计与开发。
基于JDBC开发 JDBC开发流程 JDBC包与驱动类 加载驱动 连接数据库 执行SQL语句 处理结果集 常用JDBC开发示例 应用端加工RoaringBitmap结果集并入库GaussDB(DWS)开发示例 JDBC接口参考 父主题: 使用JDBC或ODBC进行GaussDB(DWS)二次开发
GaussDB(DWS)存储过程开发规范 建议5.1 避免使用复杂的存储过程,避免存储过程嵌套 违反规范的影响: 复杂和嵌套的存储过程维护成本高,故障定位难度大,恢复耗时长。 方案建议: 不使用存储过程或只使用一层存储过程,不嵌套。 开发存储过程设计对应的日志表,将关键步骤前后的信息记录到日志表中,操作步骤如下。
GaussDB(DWS)存储过程开发规范 建议5.1 避免使用复杂的存储过程,避免存储过程嵌套 违反规范的影响: 复杂和嵌套的存储过程维护成本高,故障定位难度大,恢复耗时长。 方案建议: 不使用存储过程或只使用一层存储过程,不嵌套。 开发存储过程设计对应的日志表,将关键步骤前后的信息记录到日志表中,操作步骤如下。