检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
拆分算法使用说明 MOD_HASH算法 MOD_HASH_CI算法 RIGHT_SHIFT算法 MM按月份哈希 DD按日期哈希 WEEK按星期哈希 MMDD按月日哈希 YYYYMM按年月哈希 YYYYDD按年日哈希 YYYYWEEK按年周哈希 HASH算法 Range算法 父主题:
ALLOW_ALTER_RERUN 命令格式: /*+ allow_alter_rerun=true*/<ALTER TABLE的命令> 描述: 使用该hint可支持命令重复执行不报错,共支持八种alter table的命令形式: add column、modify column、drop column、add index、drop
<rds_ip>:RDS的IP地址,可从命令2的结果集中获取。 <rds_port>:RDS的端口号,可从命令2的结果集中获取。 该功能仅支持内核3.0.1及以上的版本。 上述的命令需要登录DDM后,在DDM上执行。 父主题: 实用SQL语句
nextval、currval在全局序列的使用 nextval返回下一个序列值,currval返回当前序列值。其中nextval可以通过nextval(n)返回n个唯一序列值。 nextval(n)只能单独用在select sequence.nextval(n)场景下并且不支持跨库操作。
会影响DDM对join算法的选择,无法使用最高效的算法。 这里的大表和小表的意思不是指原始表的规模,指的是经过where条件过滤之后的数据规模。 子查询 不建议子查询包含在OR表达式中,或者是子查询的关联条件包含在OR表达式中 不建议使用含有limit的标量子查询,如 select
自定义HINT跳过执行计划缓存 DDM提供HINT来控制SELECT语句是否跳过缓存的执行计划。 HINT的格式为: /*!GAUSS:skip_plancache=flag */ 其中flag可以是true或者false,true代表跳过执行计划缓存,false代表不跳过。 目前只支持SELECT语句。
根据拆分键,按照算法元数据的规则将数据行存储到相应的分片上。 建表时要设定元数据,假如逻辑库分8个分片,则元数据可以设定的范围为:1-2=0,3-4=1,5-6=2,7-8=3,9-10=4,11-12=5,13-14=6,default=7。根据拆分键的值在某个范围路由到对应的分片上。 算法计算方式
适用于需要将数据均匀分布的场景对数据进行拆分的场景,在SQL查询条件中,使用“=”、“IN”之类运算符相对较多。 使用说明 拆分键的数据类型必须是整数类型(INT, INTEGER, BIGINT, MEDIUMINT, SMALLINT, TINYINT, DECIMAL(支持精度为0的情况))或字符串类型(CHAR
DDM是否支持分布式JOIN DDM支持分布式JOIN。 表设计时,增加字段冗余 支持跨分片的JOIN,主要实现的方式有三种:广播表,ER分片和ShareJoin。 DDM目前禁止多个表的跨库update和delete。 父主题: SQL语法类
账号权限介绍 DDM的权限管理系统参考MySQL的权限管理进行实现,DDM支持大部分的MySQL的语法和权限类型。MySQL账号和权限系统的详细信息请参见MySQL官方文档。 本文档主要介绍DDM账号规则、权限级别、权限项、以及权限操作。 DDM里通过CREATE USER或GR
全局序列主要指基于DB的全局序列。 支持修改自增序列初始值。 全局序列主要保证ID全局唯一,并不能保证一定是连续递增的。 对使用DDM自增序列,不允许用户传null值以外的值,当用户不传或传null值时,DDM会默认分配,如果用户手工赋值会有和DDM分配自增键值冲突的风险。 表1 全局序列支持的表类型
MM按月份哈希 适用场景 MM适用于按月份数进行分表,分表的表名就是月份数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的月份数进行取余运算并得到分表下标。 例如:2019
DDM是否支持数据类型强制转换 数据类型转换属于高级用法,DDM对SQL的兼容性会逐步完善,如有需要请提工单处理。 父主题: SQL语法类
WEEK适用于按周数的日期目进行分表,分表的表名的下标分别对应一周中的各个日期(星期一到星期天)。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值所对应的一周之中的日期进行取余运算并得到分表下标。
DD按日期哈希 适用场景 DD适用于按日期的天数进行分表,分表的表数就是日期的天数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的日期的天数进行取余运算并得到分表下标。 例
检查当前逻辑库下所有逻辑表各分表的DDL一致性 用途:用于对某逻辑库所有的逻辑表的一致性情况进行全局概览。 命令格式: check table 命令输出: 如果全部逻辑表都一致, 输出结果为: 如果存在不一致的逻辑表, 输出结果为: 输出详解: 每一行表示一个逻辑表的检查结果概况。 DATABASE_NAME:逻辑库名称。
适用场景 适用于需要按用户ID或订单ID进行分库的场景。 使用说明 拆分键的数据类型必须是整数类型(INT, INTEGER, BIGINT, MEDIUMINT, SMALLINT, TINYINT, DECIMAL(支持精度为0的情况))或字符串类型(CHAR,VARCHAR)。
适用于需要按年份与一年的周数进行分库的场景,建议该函数与tbpartition YYYYWEEK(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据拆分键的时间值的年份与一年的周数计算哈希值,然后再按分库/表数取余。
分库路由结果四舍五入到最接近的整数。 拆分键:2012-11-20 分表:(2012 * 12 + 11) % (8 * 3) = 11 分库 :11 % 3 = 3 建表语法 假设用户的实例里已经分了8个物理库,现有一个业务想按年月进行分库。要求同一个月的数据能落在同一张分表内,并且两年以内的每个月
当拆分键大部分键值的低位部位区分度比较低而高位部分区分度比较高时,则适用于通过此拆分算法提高散列结果的均匀度。 使用说明 拆分键的数据类型必须是整数类型。 路由方式 根据拆分键的键值(键值必须是整数)有符号地向右移二进制移指定的位数(位数由用户通过 DDL 指定),然后将得到的整数值按分库/分表数目取余。