检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
层面的设计与开发。 术语定义 规则:数据库设计与开发时必须遵守的约定。 建议:数据库设计与开发时建议考虑的约定。 说明:对规则/建议进行的详细说明和解释。 总体开发设计规范 下表是GaussDB(DWS)开发过程中需遵循的开发设计规范全集列表,可以单击链接跳转到对应的规则下了解详细说明。
统性能,以便比较不同的设计对表的加载性能、存储空间和查询性能的影响。 在进行调优表实践之前,需要先了解表结构设计相关的内容。因为进行数据库设计时,表设计上的一些关键项将严重影响后续整库的查询性能。表设计对数据存储也有影响:好的表设计能够减少I/O操作及最小化内存使用,进而提升查询性能。
GaussDB(DWS)对象设计规范 DATABASE对象设计规范 USER对象设计规范 SCHEMA对象设计规范 TABLESPACE对象设计规范 TABLE对象设计规范(重点) INDEX对象设计规范(重点) VIEW对象设计规范 父主题: GaussDB(DWS)开发设计规范
GaussDB(DWS)开发设计建议 GaussDB(DWS)总体开发设计规范 GaussDB(DWS)连接管理规范 GaussDB(DWS)对象设计规范 GaussDB(DWS) SQL开发规范 GaussDB(DWS)外表功能开发规范 GaussDB(DWS)存储过程开发规范
GaussDB(DWS)开发设计规范 GaussDB(DWS)总体开发设计规范 GaussDB(DWS)连接管理规范 GaussDB(DWS)对象设计规范 GaussDB(DWS) SQL开发规范 GaussDB(DWS)外表功能开发规范 GaussDB(DWS)存储过程开发规范
违反规范的影响: 复杂和嵌套的存储过程维护成本高,故障定位难度大,恢复耗时长。 方案建议: 不使用存储过程或只使用一层存储过程,不嵌套。 开发存储过程设计对应的日志表,将关键步骤前后的信息记录到日志表中,操作步骤如下。 保存并查看日志操作步骤。 创建日志表。 1 2 3 4 5 6 7 8 9
基于表结构设计和调优提升GaussDB(DWS)查询性能 调优前:学习表结构设计 步骤1:创建初始表并加装样例数据 步骤2:测试初始表结构下的系统性能并建立基线 步骤3:调优表操作具体步骤 步骤4:创建新表并加载数据 步骤5:测试新的表结构下的系统性能 步骤6:调优表性能评估 附录:表创建语法
SQL开发规范 DDL操作规范 INSERT操作规范 UPDATE&DELETE操作规范 SELECT操作规范 父主题: GaussDB(DWS)开发设计建议
违反规范的影响: 复杂和嵌套的存储过程维护成本高,故障定位难度大,恢复耗时长。 方案建议: 不使用存储过程或只使用一层存储过程,不嵌套。 开发存储过程设计对应的日志表,将关键步骤前后的信息记录到日志表中,操作步骤如下。 保存并查看日志操作步骤。 创建日志表。 1 2 3 4 5 6 7 8 9
SQL开发规范 DDL操作规范 INSERT操作规范 UPDATE&DELETE操作规范 SELECT操作规范 父主题: GaussDB(DWS)开发设计规范
连接被其他业务复用时,可能出现创建临时表报错问题。 方案建议: 在将连接归还连接池之前,使用DROP清理当前SESSION创建的临时表。 父主题: GaussDB(DWS)开发设计建议
违反规范的影响: 无明确终止条件,递归陷入死循环,无法完成。 重复数据过多,递归产生大量重复数据,占用大量资源。 方案建议: 根据业务表数据量和数据特征设计合理的递归终止条件。 建议3.16 访问对象(表,函数等)时带上SCHEMA名称 违反规范的影响: 不指定SCHEMA名称前缀,实际会根据
算和限制,并适当调大max_active_statements和max_connections值。 父主题: GaussDB(DWS)开发设计建议
连接被其他业务复用时,可能出现创建临时表报错问题。 方案建议: 在将连接归还连接池之前,使用DROP清理当前SESSION创建的临时表。 父主题: GaussDB(DWS)开发设计规范
违反规范的影响: 无明确终止条件,递归陷入死循环,无法完成。 重复数据过多,递归产生大量重复数据,占用大量资源。 方案建议: 根据业务表数据量和数据特征设计合理的递归终止条件。 建议3.16 访问对象(表,函数等)时带上SCHEMA名称 违反规范的影响: 不指定SCHEMA名称前缀,实际会根据
针对列存表并发执行UPDATE/DELETE,导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 频繁执行UPDATE/DELETE操作的表需设计为行存表。 按主键或分布列进行分组UPDATE/DELETE,组间并行,组内串行。 父主题: GaussDB(DWS) SQL开发规范
步骤4:创建新表并加载数据 为每张表选择了存储方式、压缩级别、分布方式和分布列后,使用这些属性创建表并重新加载数据。以便对比表设计前后的系统性能。 执行CREATE TABLE创建表前,删除前面创建的表。 1 2 3 4 5 6 7 8 9 10 11 12 13
INSERT操作规范 规则3.3 INSERT多VALUES批插场景使用COPY替代 违反规范的影响: 多VALUES解析耗时、耗资源,入库效率低。 方案建议: 前端使用COPY类接口(如JDBC的CopyManger等)代替INSERT VALUES。 建议3.4 禁止针对普通列存表进行实时INSERT操作
DDL操作规范 建议3.1 DDL操作(CREATE除外)避免在业务高峰期和长事务中执行 违反规范的影响: DDL操作普遍持锁级别高,如ALTER、DROP、TRUNCATE、REINDEX、VACUUM FULL等,执行时会造成业务等锁阻塞。 高峰期执行持锁级别高的DDL操作,造成业务等锁阻塞。
针对列存表并发执行UPDATE/DELETE,导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 频繁执行UPDATE/DELETE操作的表需设计为行存表。 按主键或分布列进行分组UPDATE/DELETE,组间并行,组内串行。 父主题: GaussDB(DWS) SQL开发规范