检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
访问控制 操作场景 当前创建DDM实例时,DDM默认支持负载均衡(个别没有负载均衡能力的局点除外)。当业务通过控制台提供的内网地址连接DDM时,默认不限制访问的IP地址,即此时安全组是失效的,需要通过“访问控制”功能来做访问的安全控制。如果直连DDM节点,安全组依然有效。 操作步骤
MMDD按月日哈希 适用场景 MMDD适用于按一年的天数(即一年中日期)进行分表,分表的表名的下标就是一年中的第几天,一年最多366天。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根
解决方案:请先使用check table语句对表结构做一致性检查,并配合alter table等语句对表结构做修正。如果无法进行DDL修正(如主键、唯一键因为数据原因无法修改),请联系运维人员处理。 没有主键的表不支持迁移。 如果没有主键,就无法精确定位记录,在分片变更过程中如果发生重试,可能导致数据增多。
简介 DDM兼容MySQL协议及其语法,但因分布式数据库与单机数据库之间存在一定的差异性,导致SQL使用存在些限制。 在评估DDM方案之前,请先完成当前应用中的SQL语法及与DDM支持语法的兼容性评估。 MySQL EXPLAIN 当您在需要执行的SQL语句前加上EXPLAIN,
访问效率,轻松应对高并发的实时交易场景。 全局序列 DDM支持分布式全局唯一且有序递增的数字序列。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求。 在线监控 DDM支持对读次数、写次数以及慢日志监控,帮助用户快速发现资源和性能瓶颈。 运维管理界面 DDM提供可视化
拆分算法概述 支持的拆分算法概览 DDM是一个支持既分库又分表的数据库服务,目前DDM分库函数与分表函数的支持情况如下: 表1 拆分算法概览表 拆分函数 描述 能否用于分库 能否用于分表 MOD_HASH 简单取模 是 是 MOD_HASH_CI 简单取模(大小写不敏感) 是 是
MM按月份哈希 适用场景 MM适用于按月份数进行分表,分表的表名就是月份数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的月份数进行取余运算并得到分表下标。 例如:
标签 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理。 使用须知 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。
YYYYWEEK按年周哈希 适用场景 适用于需要按年份与一年的周数进行分库的场景,建议该函数与tbpartition YYYYWEEK(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据
YYYYDD按年日哈希 适用场景 适用于需要按年份与一年的天数进行分库的场景,建议该函数与tbpartition YYYYDD(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据拆分键的
WEEK按星期哈希 适用场景 WEEK适用于按周数的日期目进行分表,分表的表名的下标分别对应一周中的各个日期(星期一到星期天)。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键
创建表 禁止创建表名以"_ddm"为前缀的表,系统默认认定此类表为系统内部表。 拆分表不支持全局唯一索引,当唯一键和拆分键不一致时,不能保证数据的唯一性。 建议使用bigint型作为自增键的数据类型。tinyint、smallint、mediumint、integer、int数据
DD按日期哈希 适用场景 DD适用于按日期的天数进行分表,分表的表数就是日期的天数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的日期的天数进行取余运算并得到分表下标。
YYYYMM按年月哈希 适用场景 适用于需要按年份与月份进行分库的场景,建议该函数与 tbpartition YYYYMM(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据拆分键的时间
法知道其他节点操作的成功或失败。当一个事务跨多个节点时,为了保持事务的原子性与一致性,需要引入一个协调者(Coordinator)来统一掌控所有参与者(Participant)的操作结果,并指示它们是否要把操作结果进行真正的提交(commit)或者回滚(rollback)。DDM
MOD_HASH_CI算法 适用场景 适用于需要按用户ID或订单ID进行分库的场景。 使用说明 拆分键的数据类型必须是整数类型(INT, INTEGER, BIGINT, MEDIUMINT, SMALLINT, TINYINT, DECIMAL(支持精度为0的情况))或字符串类型(CHAR
HASH算法 适用场景 适用于需要将数据均匀分布的场景对数据进行拆分的场景,在SQL查询条件中,使用“=”、“IN”之类运算符相对较多。 使用说明 拆分键的数据类型必须是整数类型(INT, INTEGER, BIGINT, MEDIUMINT, SMALLINT, TINYINT
合理制定分片策略 当数据表之间存在E-R关系时,可以制定相同的分片规则,各数据表分别选择有关联关系的字段作为拆分键,这样各表中有关联关系的数据将会存储在一个分片上,避免数据跨分片JOIN操作。如客户表、订单表与订单明细表,在创建拆分表时,建议都选取客户ID作为拆分键。 表1 拆分键与拆分算法使用简介
Range算法 适用场景 适用于范围类操作较多的场景。在SQL查询条件中,使用“>”、“<”、“BETWEEN ... AND ...”之类运算符相对较多。 使用说明 拆分键的类型只支持整型类型、日期类型和日期函数结合,如果使用日期函数,拆分键的数据类型必须是date、datetime、timestamp其一。
REPLACE REPLACE用于往表中插入行或替换表中的行。 常用语法 replace into table(col1,col2,col3) values(value1,value2,value3) 语法限制 暂不支持PARTITION语法。 当自增表格ID不存在时,使用REP