检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by hash (ID); 假设用户需要对ID列按HASH函数既分库又分表: create table mod_hash_tb ( id int, name varchar(30) DEFAULT
dbpartition by mod_hash(ID) tbpartition by mod_hash(ID) tbpartitions 4; 注意事项 MOD_HASH算法是简单取模,要求拆分列的值自身分布均衡才能保证哈希均衡。 父主题: 拆分算法使用说明
目标数据查询不到。 路由方式 实现原理同MOD_HASH算法一致,区别在于MOD_HASH_CI算法对大小写不敏感,而MOD_HASH算法对大小写敏感。 算法计算方式 方式一:拆分键是整型 表1 拆分键是整型时的计算方式 条件 算法 举例 分库拆分键 ≠ 分表拆分键 分库路由结果
拆分算法概述 支持的拆分算法概览 DDM是一个支持既分库又分表的数据库服务,目前DDM分库函数与分表函数的支持情况如下: 表1 拆分算法概览表 拆分函数 描述 能否用于分库 能否用于分表 MOD_HASH 简单取模 是 是 MOD_HASH_CI 简单取模(大小写不敏感) 是 是
拆分算法使用说明 MOD_HASH算法 MOD_HASH_CI算法 RIGHT_SHIFT算法 MM按月份哈希 DD按日期哈希 WEEK按星期哈希 MMDD按月日哈希 YYYYMM按年月哈希 YYYYDD按年日哈希 YYYYWEEK按年周哈希 HASH算法 Range算法 父主题:
t=7。根据拆分键的值在某个范围路由到对应的分片上。 算法计算方式 方式一:拆分键是整型 表1 拆分键是整型时的计算方式 条件 算法 举例 拆分键是整型 分库路由结果 = 根据分库拆分键值在设定的元数据的范围进行路由 分库 :拆分值为3属于3-4=1,则路由到1分片 方式二:拆分键是日期类型
例如:2019-1-15,当根据分库键确定分库后,确定分表的计算方式是:月份mod分表数,即:1 mod 12 = 1。 算法计算方式 表1 算法举例 条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:1 % 12 = 1 建表语法
-> 1 上述SQL返回值为1,表示2019-01-15是周二,因为周日为一周中的第一天,所以周二则为一周中的第三天。 算法计算方式 表1 算法举例 条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:3 % 7= 3 建表语法
例如:2019-1-15,当根据分库建确定分库后,确定分表的计算方式是:一个月的第几天mod分表数,即:15 mod 31 = 15。 算法计算方式 表1 算法举例 条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:15 % 31 = 15
mediumint、integer、int数据类型不建议作为自增键的类型,容易越界造成值重复。 分库分表 假设使用HASH的拆分库算法,拆分表算法为MOD_HASH,样例如下: CREATE TABLE tbpartition_tbl ( id bigint NOT NULL AUTO_INCREMENT
分表的计算方式是:一年的第几天mod分表数,即:15 mod 366 = 15; 2019-1-15是一年的第15天。 算法计算方式 表1 算法举例 条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:15 % 366= 15
RIGHT_SHIFT算法 适用场景 当拆分键大部分键值的低位部位区分度比较低而高位部分区分度比较高时,则适用于通过此拆分算法提高散列结果的均匀度。 使用说明 拆分键的数据类型必须是整数类型。 路由方式 根据拆分键的键值(键值必须是整数)有符号地向右移二进制移指定的位数(位数由用户通过
为了方便日志清理和转储,采用range拆分算法,对时间字段用日期函数转换成年,表示按年存储到各个分片上,详情参见如下示例。 如何选择拆分算法 拆分算法即将逻辑表中数据拆分到多个数据库分片上的算法,DDM支持hash和range两大类拆分算法。 hash类 将数据均匀分布在各个分片。 适用
password 是 String 待测试是否是弱密码的字符串。 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 is_weak_password Boolean 是否是弱密码。true为弱密码,不建议使用。false为非弱密码,可以使用。 状态码: 400 表5
例如,YYYYMM(‘2012-12-31 12:12:12’) 等价于 (2012 * 12 + 12) % D(D是分库数目/分表数)。 算法计算方式 表1 算法计算方式 条件 算法 举例 分库拆分键 ≠ 分表拆分键 拆分键:yyyy-MM-dd 分库路由结果 = (yyyy * 12 + MM) %
此处“2012-12-31”是2013年第一周,所以为"2013* 54+ 1"。 YYYYWEEK的具体用法请参见YEARWEEK函数。 算法计算方式 表1 算法计算方式 条件 算法 举例 分库拆分键 ≠ 分表拆分键 拆分键:yyyy-MM-dd 分库路由结果 = (yyyy * 54 + 一年第几周)
D(D是分库数目/分表数)。 "2012-12-31"是2012年第366天,所以为"2012 * 366+366"。 算法计算方式 表1 算法计算方式 条件 算法 举例 分库拆分键 ≠ 分表拆分键 拆分键:yyyy-MM-dd 分库路由结果 = (yyyy * 366 + 一年第几天)
temp_table_size_limit 临时表大小。 500000~2000000000 1000000 transfer_hash_to_mod_hash 创表时是否将hash算法转为mod_hash算法。 OFF、ON OFF ultimate_optimize 是否需要根据参数值来优化SQL执行计划。
目标实例的实例规格和存储空间等原则上不低于源数据库。 检查源数据库和目标实例的表结构和字符集等一致。 “拆分算法”为“hash”的逻辑表单次迁移记录数不超过1000万条;“拆分算法”为“range”的逻辑表单次迁移记录数不超过500万条。 对于数量过大的表可以采用分批导出导入,通过m
Mycat导出表结构和表数据。 连接目标DDM关联的RDS将数据导入至目标DDM(非拆分表场景)。 拆分表:分片规则为hash类(含年月日等日期类) 拆分表:拆分算法为hash(含日期函数) Mycat导出全部数据表结构。 对照导出的表结构,在DDM控制台创建表结构完全相同的表。 从Mycat整库导出数据。