检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
JSON数据类型 MySQL数据库 GaussDB数据库 差异 JSON 支持,存在差异 GaussDB数据库MySQL兼容性B模式中的JSON类型与GaussDB数据库原生的JSON类型行为一致,与MySQL行为差异较大,此处不再逐个列出。 GaussDB数据库MySQL兼容性B模式
建议系统管理员创建Schema和Database,再授予相关用户对应的权限。 Database设计建议 在实际业务中,根据需要创建新的Database,不建议直接使用数据库实例默认的postgres数据库。 一个数据库实例内,用户自定义的Database数量推荐值为3个,不建议超过1
{'charset_name' [COLLATE 'collation_name'] | DEFAULT}; GaussDB中暂不支持指定charset_name与数据库字符集不同。具体请参见《开发指南》中“SQL参考 > SQL语法 > S > SET ”章节。 父主题: SQL
认情况下会与MySQL有一定差异,需要设置GUC参数set standard_conforming_strings= off;的情况下,对于转义字符的场景才会与MySQL兼容,但是会产生非标准字符输入的warning告警,在转义字符中\t、\u与转义数字与MySQL有差异。JSO
GaussDB数据库在数据类型、SQL功能和数据库对象等基本功能上与MySQL数据库兼容。 GaussDB的执行计划和优化、EXPLAIN显示结果与MySQL不同。 由于GaussDB数据库与MySQL数据库底层框架实现存在差异,GaussDB数据库与MySQL数据库仍存在部分差异。
视图和关联表设计 视图设计 除非视图之间存在强依赖关系,否则不建议视图嵌套。 视图定义中尽量避免排序操作。 关联表设计 表之间的关联字段应该尽量少。 关联字段的数据类型应该保持一致。 关联字段在命名上,应该可以明显体现出关联关系。例如,采用同样名称来命名。 父主题: 数据库对象设计
视图和关联表设计 视图设计 除非视图之间存在强依赖关系,否则不建议视图嵌套。 视图定义中尽量避免排序操作。 关联表设计 表之间的关联字段应该尽量少。 关联字段的数据类型应该保持一致。 关联字段在命名上,应该可以明显体现出关联关系。例如,采用同样名称来命名。 父主题: 数据库对象设计
从命名上明确标识主键约束,例如,将主键约束命名为“PK+字段名”。 检查约束 从命名上明确标识检查约束,例如,将检查约束命名为“CK+字段名”。 父主题: 数据库对象设计
表设计 总体上讲,良好的表设计需要遵循以下原则: 【关注】减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 【关注】尽量减少随机I/O。通过聚簇/局部聚簇可以实现热数据的连续存储,将随机I/O转换为连续I/O,从而减少扫描的I/O代价。 选择存储方案 【建议】
事务 GaussDB数据库兼容MySQL的事务,但存在部分差异。本章节介绍GaussDB的M-Compatibility数据库中事务相关的差异。 事务默认隔离级别 M-Compatibility默认隔离级别为READ COMMITTED,MySQL默认隔离级别为REPEATABLE-READ。
换、仅支持赋值时转换。不支持的场景下即使定义了转换路径,也不能做数据类型转换。 MySQL数据库支持任意两种数据类型之间做转换。 由于存在以上差异,基于MySQL数据库的应用程序向GaussDB数据库迁移时,SQL语句可能由于不支持不同数据类型之间的转换而报错。或者支持转换的场景
“PK+字段名”。 检查约束 【关注】行存表支持检查约束。 【建议】从命名上明确标识检查约束,例如,将检查约束命名为 “CK+字段名”。 父主题: 数据库对象设计
JSON数据类型 表1 JSON数据类型 MySQL数据库 GaussDB数据库 JSON 不完全兼容 父主题: 数据类型
多租数据库 以下系统表为多租数据库特性系统表,当前版本暂不支持使用。 GS_PDB GS_RESOURCE_PLANS GS_RESOURCE_PLAN_DIRECTIVES 父主题: 系统表
多租数据库 以下视图为多租数据库特性视图,分布式暂不支持使用。 GS_RESPLAN_PDB_INFO GS_RESPLAN_PDB_METRIC GS_RESPLAN_PDB_METRIC_HISTORY MTD_USER GS_DATABASE_DETAILS 父主题: 系统视图
63”。由转义字符引起的本函数与MySQL的差异,此为GaussDB与MySQL的转义字符差异。 str字符串中的“\b”,输出结果表现形式与MySQL有差异。此为GaussDB与MySQL的固有差异 str字符串中含有“\0”时,GaussDB由于UTF-8字符集不识别该字符,
GaussDB数据库兼容绝大多数MySQL的表达式,但存在部分差异。如未列出,表达式行为默认为GaussDB原生行为。 表1 表达式 MySQL数据库 GaussDB数据库 用户自定义变量@var_name 部分支持 全局变量@@var_name 部分支持 父主题: MySQL兼容性B模式
从命名上明确标识主键约束,例如,将主键约束命名为 “PK+字段名”。 检查约束 从命名上明确标识检查约束,例如,将检查约束命名为 “CK+字段名”。 父主题: 数据库对象设计
”。 检查约束 【关注】行存表支持检查约束。 【建议】从命名上明确标识检查约束,例如,将检查约束命名为“CK+字段名”。 父主题: 数据库对象设计
日期与时间数据类型 表1 日期与时间数据类型 MySQL数据库 GaussDB数据库 差异 DATE 支持,存在差异 GaussDB支持date数据类型,与MySQL相比规格上存在如下差异: 输入格式 GaussDB只支持字符类型,不支持数值类型。如支持'2020-01-01'或