检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
MySQL兼容性MySQL模式概述 MySQL兼容性MySQL模式主要介绍GaussDB数据库的MySQL兼容性MySQL模式(即sql_compatibility = 'MYSQL'、且设置参数b_format_version='5.7'、b_format_dev_version='s1'时)与MySQL
racle语法、MySQL语法和PostgreSQL语法,不同兼容模式下的语法行为存在一定差异,默认为MYSQL兼容模式。 Database的owner默认拥有该Database下所有对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。 Schema设计建议 实际用户环境
× 分区表的不同业务最终都是作用于目标分区上,数据库会给分区表和目标分区施加不同级别的表锁+分区锁,来控制并发行为。下表给出了不同业务的锁粒度控制。其中数字1~8代表上表给出的8种级别常规锁。 表2 分区表业务锁粒度 业务模型 一级分区表锁级别(表锁+分区锁) 二级分区表锁级别(表锁+一级分区锁+二级分区锁)
表达式 GaussDB数据库兼容绝大多数MySQL的表达式,但存在部分差异。如未列出,表达式行为默认为GaussDB原生行为。 表1 表达式 MySQL数据库 GaussDB数据库 用户自定义变量@var_name 部分支持 全局变量@@var_name 部分支持 父主题: MySQL兼容性B模式
唯一约束 【关注】行存表支持唯一约束。 【建议】从命名上明确标识唯一约束,例如,命名为“UNI+构成字段”。 主键约束 【关注】行存表支持主键约束。 【建议】从命名上明确标识主键约束,例如,将主键约束命名为 “PK+字段名”。 检查约束 【关注】行存表支持检查约束。 【建议】从
用户需要自定义分布规则的场景。 如图1所示,复制表如图中的表T1,哈希表如图中的表T2。 图1 复制表和哈希表 在对复制表进行数据插入、修改、删除等操作时,如果用户使用声明为可下推(shippable或者immutable)的函数对不可下推的成分进行封装,则可能会导致复制表不同DN数据不一致。 使用带
cle语法、MySQL语法和PostgreSQL语法,不同兼容模式下的语法行为存在一定差异,默认为MYSQL兼容模式。 【关注】Database的owner默认拥有该Database下所有对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。 Schema设计建议 【建议】
开发设计建议概述 开发设计建议约定数据库建模和数据库应用程序开发过程中,应当遵守的设计规范。依据这些规范进行建模,能够更好地契合GaussDB的分布式处理架构,输出更高效的业务SQL代码。 开发设计建议中所陈述的“建议”和“关注”含义如下: 建议:用户应当遵守的设计规则。遵守这些
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般需要遵循以下原则: 尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般需要遵循以下原则: 尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般需要遵循以下原则: 尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
4294967295。 其他差异: INT[(M)]精度,MySQL控制格式化输出,GaussDB仅语法支持,不支持功能。 聚集函数: variance:GaussDB表示样本方差,MySQL表示总体方差。 stddev:GaussDB表示样本标准差,MySQL表示总体标准差。 显示宽度: 在为整型数
并使用科学计数法计数。和MySQL的非JSON类型入参相同。但是在JSON类型入参时,由于JSON类型未完全与MySQL兼容,此场景下会产生差异。MySQL会完整显示数字(并且当数字长度超过82时,MySQL会给出错误的结果),GaussDB依然将超长数字解析为一个double
约束设计 DEFAULT和NULL约束 如果能够从业务层面补全字段值,那么,不建议使用DEFAULT约束,避免数据加载时产生不符合预期的结果。 给明确不存在NULL值的字段加上NOT NULL约束,优化器会在特定场景下对其进行自动优化。 给可以显式命名的约束显式命名。除了NOT
如果可以用int就尽量不用bigint。 使用一致的数据类型 表关联列尽量使用相同的数据类型。如果表关联列数据类型不同,数据库必须动态地转化为相同的数据类型进行比较,这种转换会带来一定的性能开销。 父主题: 表设计最佳实践
开发设计建议概述 本开发设计建议约定数据库建模和数据库应用程序开发过程中,应当遵守的设计规范。依据这些规范进行建模,能够更好地契合GaussDB的处理架构,输出更高效的业务SQL代码。 本开发设计建议中所陈述的“建议”和“关注”含义如下: 建议:用户应当遵守的设计规则。遵守这些规
开发设计建议概述 开发设计建议约定数据库建模和数据库应用程序开发过程中,应当遵守的设计规范。依据这些规范进行建模,能够更好地契合GaussDB的处理架构,输出更高效的业务SQL代码。 开发设计建议中所陈述的“建议”和“关注”含义如下: 建议:用户应当遵守的设计规则。遵守这些规则,
GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 MySQL数据库 GaussDB数据库 utf8mb4 支持 gbk 支持 gb18030 支持 目前GaussDB对不属于当前字符集的非法字符未执行严格的编码逻辑校验,可能导致此类非法字符成功输入。而MySQL会校验报错。