检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
日期和时间类型 概述 本节介绍如下日期和时间类型:DATETIME、TIME、TIMESTAMP、YEAR。GaussDB(DWS)不支持以上类型,DSC工具将会对其转换。 类型对照 表1 日期和时间类型对照表 MySQL日期时间类型 MySQL INPUT GaussDB(DWS)
tb_motor_vehicle列存表的分区扫描上。 已确认该表的分区键为createtime,而涉及的SQL中无任何createtime的筛选和过滤条件,基本可以确认是由于慢SQL的计划没有走分区剪枝,导致了全表扫描,对于185亿条数据量的表,全表扫描性能会很差。 处理方法 在慢SQL的过滤条件中增加分区筛选条件,避免走全表扫描。
MySQL配置 设置MySQL配置参数可在迁移MySQL数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-mysql.properties文件,并根据实际需要设置features-mysql.properties文件中的配置参数中的参数。 表1 features-mysql
PARTITION BY 在MySQL中,PARTITION BY用于创建分区表。GaussDB(DWS)目前仅对MySQL中的RANGE,LIST分区进行支持。 对于PARTITION BY的HASH分区,DSC暂不支持该特性的完整迁移,将其移除。对于表的当前功能暂时没有影响,性能方面可能存在些许差异。
boundary of partition "p5" is equal to previous partition's boundary 原因分析 增加分区时需同时满足以下条件: 新增分区名不能与已有分区名相同。 新增分区的边界值必须大于最后一个分区的上边界。 新增分区的边界值要和分区表的分区键的类型一致。
ALTER TABLE PARTITION 功能描述 修改表分区,包括增删分区、切割分区、合成分区,以及修改分区属性等。 注意事项 添加分区的名称不能与该分区表已有分区的名称相同。 对于范围分区表,要添加的分区的边界值要和分区表的分区键的类型一致,且要大于分区表的最后一个分区的上边界。 对
扫描范围。分区剪枝是指对于分区表或分区索引来说,优化器可以自动从FROM和WHERE子句里根据分区键提取出需要扫描的分区,从而避免全表扫描,减少扫描的数据块,提高性能。 优化前 创建一个非分区表orders_no_part,表定义如下: 执行以下SQL语句查询非分区表的执行计划:
MySQL SQL迁移 工具支持从MySQL到GaussDB(DWS)的迁移,包括模式、DML、查询、系统函数、PL/SQL等。 在LINUX中执行MySQL迁移 在Linux中执行以下命令开始迁移。用户需指定源数据库、输入和输出文件夹路径和日志路径;应用程序语言类型是SQL。
√ √ x 移除分区 右键单击所需分区,选择“删除分区”。 弹出“删除分区”对话框。 单击“确定”。 该分区会从表中移除。Data Studio将在状态栏中显示操作的状态。 重命名分区 右键单击所需分区,选择“重命名分区”。 弹出“重命名分区”对话框,提示用户为分区输入新名称。 输入新名称,单击“确定”。
分区管理函数 proc_add_partition (relname regclass, boundaries_interval interval) 描述:用于给开启自动创建分区功能的表添加分区。 返回值类型:void 备注:该函数运行时,会在现有分区boundary的基础上,创
MySQL语法迁移 支持的关键词和特性 数据类型 函数和表达式 表(可选参数、操作) 索引 注释 数据库 数据操作语句(DML) 事务管理和数据库管理 父主题: DSC
1>5000),因此报错。 处理方法 应根据数据实际情况规划分区,以保证插入的数据都在规划好的分区中。 如果已规划的分区无法满足实际应用条件,可以增加分区后再插入数据。针对上述案例,可以增加分区c2,分区范围介于5000和MAXVALUE之间: 1 2 3 4 5 6
使用GaussDB(DWS)分区自动管理功能降低电商和物联网行业数据分区维护成本 场景介绍 对于分区列为时间的分区表,分区自动管理功能可以自动创建新分区和删除过期分区,降低分区表的维护成本,改善查询性能。为了便于查询和维护数据,用户通常使用分区列为时间的分区表来存储时间相关的数据,例如电商的订单信息、
表示默认分区的边界。 对于列表分区表,存在以下约定和约束: 边界值为DEFAULT的分区,称之为默认分区。 每个列表分区表只能有一个DEFAULT分区。 分区表的所有分区数不超过32767个,所有分区的边界值个数不大于32767个。 不管分区键的个数,DEFAULT分区的边界只能是一个DEFAULT。
数据类型 数字类型 日期和时间类型 字符串类型 空间数据类型 大对象类型 集合类型 布尔类型 二进制类型 JSON类型 父主题: MySQL语法迁移
分区管理函数 proc_add_partition (relname regclass, boundaries_interval interval) 描述:用于给开启自动创建分区功能的表添加分区。 返回值类型:void 备注:该函数运行时,会在现有分区boundary的基础上,创
Oracle、Teradata和MySQL语法兼容性差异 GaussDB(DWS)支持Oracle、Teradata和MySQL三种兼容模式,分别兼容Oracle、Teradata和MySQL语法,不同兼容模式下的语法行为有一些差异。 数据库兼容模型可以在创建数据库时指定(由DB
DEFAULT alter table增加列包含not null约束时,如果无default值,在MySQL中会插入默认值,而在GaussDB(DWS)中插入到非空表时会报错,因此针对常见数据类型,alter table add column包含not null约束补充默认default值(详情见表1)。
除法表达式 MySQL中,除法表达式中,当除数为0时,会返回null值。DWS会报错,因此对除法表达式进行转换,增加一个if条件表达式。 输入示例 1 2 select sum(c1) / c2 as result from table_t1; select sum(c1) / count
COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id"); 父主题: MySQL语法迁移