检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
GaussDB(DWS)视图和关联表设计规则 视图设计 【建议】除非视图之间存在强依赖关系,否则不建议视图嵌套。 【建议】视图定义中尽量避免排序操作。 关联表设计 【建议】表之间的关联字段应该尽量少。 【建议】关联字段的数据类型应该保持一致。 【建议】关联字段在命名上,尽可能体现
违反规则的影响: 跨库访问无论使用哪种方案,性能均劣与同一DATABASE内的关联操作。 方案建议: 创建多个DATABASE的场景,将需要做关联计算的对象,存放在同一DATABASE中。 父主题: GaussDB(DWS)对象设计规范
TABLESPACE对象设计规范 规则2.8 禁止自定义TABLESPACE表空间 违反规则的影响: 分布式场景建表使用自定义表空间,导致表数据无法按照各DN分布式存储,出现存储倾斜。 方案建议: 创建表对象使用内置默认表空间。 父主题: GaussDB(DWS)对象设计规范
USER对象设计规范 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如超级用户、管理员用户等,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务
TABLESPACE对象设计规范 规则2.8 禁止自定义TABLESPACE表空间 违反规则的影响: 分布式场景建表使用自定义表空间,导致表数据无法按照各DN分布式存储,出现存储倾斜。 方案建议: 创建表对象使用内置默认表空间。 父主题: GaussDB(DWS)对象设计规范
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: GaussDB(DWS)对象设计规范
SCHEMA对象设计规范 建议2.7 不在其他USER的私有SCHEMA下创建对象 私有SCHEMA是指创建USER时自带的同名SCHEMA,该SCHEMA为该USER私有。 违反规则的影响: 在其他用户私有SCHEMA下创建对象,对象权限不受创建者控制,OWNER也非创建者。 方案建议:
创建弹性云服务器ECS 参考《弹性云服务器用户指南》创建弹性云服务器,创建的规格可参见下表。 由于TPC-DS、TPC-H数据集占用空间较大,以TPC-DS 1000X和TPC-H 1000X为例,分别占用930GB和1100GB。请创建弹性云服务器时,根据需求添加数据盘,举例如下:
GaussDB(DWS)表设计规则 GaussDB(DWS)是分布式架构。数据分布在各个DN上。总体上讲,良好的表设计需要遵循以下原则: 【关注】将表数据均匀分布在各个DN上。数据均匀分布,可以防止数据在部分DN上集中分布,从而导致因存储倾斜造成集群有效容量下降。通过选择合适的分布列,可以避免数据倾斜。
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUT BY显式指定分布方式和分布列,分布列选择原则如下表所示。
USER对象设计规范 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如超级用户、管理员用户等,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: GaussDB(DWS)对象设计规范
SCHEMA对象设计规范 建议2.7 不在其他USER的私有SCHEMA下创建对象 私有SCHEMA是指创建USER时自带的同名SCHEMA,该SCHEMA为该USER私有。 违反规则的影响: 在其他用户私有SCHEMA下创建对象,对象权限不受创建者控制,OWNER也非创建者。 方案建议:
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUT BY显式指定分布方式和分布列,分布列选择原则如下表所示。
GaussDB(DWS)字段设计规则 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
GaussDB(DWS)数据库对象设计规则 GaussDB(DWS) Database和Schema设计规则 GaussDB(DWS)表设计规则 GaussDB(DWS)字段设计规则 GaussDB(DWS)约束设计规则 GaussDB(DWS)视图和关联表设计规则 父主题: GaussDB(DWS)各对象设计详细规则
GaussDB(DWS)视图和关联表设计规则 视图设计 【建议】除非视图之间存在强依赖关系,否则不建议视图嵌套。 【建议】视图定义中尽量避免排序操作。 关联表设计 【建议】表之间的关联字段应该尽量少。 【建议】关联字段的数据类型应该保持一致。 【建议】关联字段在命名上,尽可能体现
层面的设计与开发。 术语定义 规则:数据库设计与开发时必须遵守的约定。 建议:数据库设计与开发时建议考虑的约定。 说明:对规则/建议进行的详细说明和解释。 总体开发设计规范 下表是GaussDB(DWS)开发过程中需遵循的开发设计规范全集列表,可以单击链接跳转到对应的规则下了解详细说明。
数据库访问实现权限分层 GaussDB(DWS)中可以使用Database和Schema实现业务的隔离,区别在于: Database之间无法直接互访,通过连接隔离实现彻底的权限隔离。各个Database之间共享资源极少,可实现连接隔离、权限隔离等。 Schema隔离的方式共用资源
层面的设计与开发。 术语定义 规则:数据库设计与开发时必须遵守的约定。 建议:数据库设计与开发时建议考虑的约定。 说明:对规则/建议进行的详细说明和解释。 总体开发设计规范 下表是GaussDB(DWS)开发过程中需遵循的开发设计规范全集列表,可以单击链接跳转到对应的规则下了解详细说明。