检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
语句输出列表中的子查询,在下面例子中,括号内部分即为一个标量子查询语句: 1 SELECT id, (SELECT COUNT(*) FROM films f WHERE f.did = s.id) FROM staffs_p1 s; 标量子查询时常会导致查询性能急剧劣化,在应用开发过程中
GaussDB(DWS)对象设计规范 DATABASE对象设计规范 USER对象设计规范 SCHEMA对象设计规范 TABLESPACE对象设计规范 TABLE对象设计规范(重点) INDEX对象设计规范(重点) VIEW对象设计规范 父主题: GaussDB(DWS)开发设计规范
SCHEMA对象设计规范 建议2.7 不在其他USER的私有SCHEMA下创建对象 私有SCHEMA是指创建USER时自带的同名SCHEMA,该SCHEMA为该USER私有。 违反规则的影响: 在其他用户私有SCHEMA下创建对象,对象权限不受创建者控制,OWNER也非创建者。 方案建议
TABLESPACE对象设计规范 规则2.8 禁止自定义TABLESPACE表空间 违反规则的影响: 分布式场景建表使用自定义表空间,导致表数据无法按照各DN分布式存储,出现存储倾斜。 方案建议: 创建表对象使用内置默认表空间。 父主题: GaussDB(DWS)对象设计规范
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: GaussDB(DWS)对象设计规范
父主题: GaussDB(DWS)开发设计建议
父主题: GaussDB(DWS)开发设计规范
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
GaussDB(DWS)数据库GUC参数 查看GUC参数 设置GUC参数 GUC使用说明 连接和认证 资源消耗 并行导入 预写式日志 双机复制 查询规划 错误报告和日志 运行时统计 资源管理 自动清理 客户端连接缺省设置 锁管理 版本和平台兼容性 容错性 连接池参数 集群事务 开发人员选项
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
USER对象设计规范 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如管理员用户,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务
GaussDB(DWS)约束设计规则 DEFAULT和NULL约束 【建议】如果能够从业务层面补全字段值,则不建议使用DEFAULT约束,避免数据加载时产生不符合预期的结果。 【建议】给明确不存在NULL值的字段加上NOT NULL约束,优化器会在特定场景下对其进行自动优化。 【建议
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示
GaussDB(DWS)数据库对象设计规则 GaussDB(DWS) Database和Schema设计规则 GaussDB(DWS)表设计规则 GaussDB(DWS)字段设计规则 GaussDB(DWS)约束设计规则 GaussDB(DWS)视图和关联表设计规则 父主题: GaussDB
GaussDB(DWS) Database和Schema设计规则 GaussDB(DWS)中可以使用Database和Schema实现业务的隔离,两者区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等,Database之间无法直接互访
CopyManager 【建议】在不使用ETL工具、数据入库实时性要求又比较高的情况下,建议在开发应用程序时,使用GaussDB(DWS)JDBC驱动的CopyManager接口进行微批量导入。 CopyManager的使用方法请参见CopyManager。
注意事项 执行脚本前需设置环境变量,可参考《开发指南》中“导入数据>通过外表并行导入>安装配置和启动GDS”章节。 脚本需要在python 3环境下运行。 必须在root用户下执行脚本gds_uninstall。 必须包含--host、-U参数。 目前不支持跨平台的卸载操作。
默认值:on 当前压缩算法为zlib,暂不支持设置为其他压缩算法。 对于通过从低版本升级成为当前版本的集群,此参数默认关闭(off)。如果用户需要,可以通过gs_guc命令打开FPI压缩功能。 当前版本若为全新安装版本,此参数默认打开(on)。
这也是针对破解算法提供一种额外的安全保护。 它们的结果中包括了算法类型,因此可以针对不同用户使用不同的算法对密码进行加密。 其中一些算法具有自适应性,意味着当计算机性能变得更快时,可以调整该算法使其变得更慢,而不会产生与已有密码的不兼容性。