检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
合理制定分片策略 当数据表之间存在E-R关系时,可以制定相同的分片规则,各数据表分别选择有关联关系的字段作为拆分键,这样各表中有关联关系的数据将会存储在一个分片上,避免数据跨分片JOIN操作。如客户表、订单表与订单明细表,在创建拆分表时,建议都选取客户ID作为拆分键。 表1 拆分键与拆分算法使用简介
INSERT INSERT是将数据插入到数据库对象中的指令。 常用语法 INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr },...),(...),... [ ON DUPLICATE KEY UPDATE
读写分离操作指导 DDM读写分离功能可以将只读查询的流量按比例分摊至下挂数据节点的主实例和只读实例,从而减轻主实例的工作负担,保障读写事务的性能。此功能对应用透明,业务代码无需改造,只需要在控制台上设置主实例和只读实例的读权重,即可实现将读流量按照权重分流到主实例和只读实例上,写
LOAD DATA 标准示例 LOAD DATA LOCAL INFILE '/data/data.txt' IGNORE INTO TABLE test CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED
不支持的特性和使用限制 不支持的特性 不支持存储过程。 不支持触发器。 不支持视图。 不支持事件。 不支持自定义函数。 不支持外键约束、外键关联。 不支持全文索引和空间函数。 不支持临时表。 不支持BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END
如何选择DDM逻辑库分片数 逻辑库选择“非拆分”模式时,一个逻辑库仅对应一个MySQL实例,在该实例上仅创建1个分片。 逻辑库选择“拆分”模式时,一个逻辑库可对应多个MySQL实例,在每个实例上,可创建1-64个分片。如果因业务需要分片数超过64,请联系DDM技术人员。 分片平移
DN实例使用限制 在使用DDM过程中,对于DN实例存在一些使用限制。 仅支持5.7及8.0系列版本的RDS for MySQL实例,不支持Serverless类型和容器类型。 不支持GaussDB(for MySQL)实例和云耀数据库实例。 DDM暂不支持MySQL实例配置SSL连接。
API概览 分布式数据库中间件所提供的接口为REST(Representational State Transfer)风格API。通过使用DDM接口,您可以使用DDM的所有功能,包括创建实例、创建逻辑库等。 表1 接口介绍 类型 接口名称 说明 DDM实例类接口 购买DDM实例
变更评估 分片变更前,可根据以下几点对分片变更做一个初步的评估,根据评估结果选择适当的新分片数, DDM实例规格和DN实例规格, 以及DN节点个数。 数据量:可用show db status命令来获得目前现网的数据量。 DDM规格:当前DDM实例的CPU个数、内存大小、DDM节点数。
Sysbench 测试环境 区域:华东-上海二 可用分区:可用区4 分片数:16个 逻辑表数量:1个 数据量:3.2亿 RDS规格:8vCPUs | 16GB,16vCPUs | 32GB,32vCPUs | 64GB, 存储类型为“超高IO” 压力机(1台sysbench):32U64G
使用限制 不支持触发器。 不支持临时表。 不支持DO语句。 不支持外键关联。 不支持RESET语句。 不支持FLUSH语句。 不支持BINLOG语句。 不支持HANDLER语句。 不支持show warnings。 不支持 ‘:=’ 赋值运算符。 暂不支持<=>运算符。 暂不支持'IS
通过JDBC连接池连接DDM 操作场景 连接池实现原理:在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,发出请求,直接从连接池中取出一个已建立的空闲连接对象。使用完毕后,再将连接放回连接池中,供下一个请求访问使用。连接的建立、断开都由连接池自身来管理
重置密码 您可以在DDM控制台重置账号密码。 使用须知 重置DDM账号密码属于高风险操作,需确保账号具备IAM中“修改DDM账号”的权限。 DDM的账号状态为“已过期”时,账号将无法登录,已有连接会断开,需要重置密码后重新登录。 图1 账号已过期 操作步骤 登录分布式数据库中间件控制台。
如何解决JDBC驱动方式连接DDM异常问题 MySQL驱动( JDBC)通过Loadbalance方式连接DDM,在某些场景下连接切换时会陷入死循环,最终导致栈溢出。 问题定位 查看APP日志,定位异常原因。 例如,从以下日志中分析出异常最终原因为栈溢出。 Caused by: java
应用参数模板 参数模板创建成功或者根据业务需求调整完参数之后,需要将参数模板应用到DDM实例中。 操作步骤 登录分布式数据库中间件控制台。 在“参数模板”页面,根据参数模板类型不同进行如下操作。 如果需要将默认参数模板应用到实例,在“系统默认”页签的目标参数模板单击“应用”。 如
UPDATE 常用语法 UPDATE table_reference SET col_name1={expr1} [, col_name2={expr2}] ... [WHERE where_condition] 语法限制 不支持使用子查询(相关子查询和非相关子查询)。 UPDA
复制参数模板 您可以复制您创建的自定义数据库参数模板。当您已创建一个数据库参数模板,并且想在新的数据库参数模板中包含该组中的大部分自定义参数和值时,复制参数模板是一个方便的解决方案。 复制数据库参数模板之后,新参数模板可能不会立即显示,建议您等待5分钟再使用。 您无法复制默认参数
创建逻辑库 本章节主要介绍在DDM控制台创建逻辑库的方法。 使用须知 创建逻辑库时,仅支持关联和DDM实例处于相同VPC的数据节点,且数据节点没有被其他DDM实例使用。DDM将在关联的数据节点上新建数据库,不会影响已有的库表。 创建逻辑库时,同一个逻辑库,MySQL大版本需要相同,不可以混用。
创建表 禁止创建表名以"_ddm"为前缀的表,系统默认认定此类表为系统内部表。 拆分表不支持全局唯一索引,当唯一键和拆分键不一致时,不能保证数据的唯一性。 建议使用bigint型作为自增键的数据类型。tinyint、smallint、mediumint、integer、int数据
全局序列在INSERT或REPLACE语句中的使用 要想在同一个实例下实现跨逻辑库序列的全局唯一,可以在INSERT语句或者REPLACE语句中结合全局序列一起使用。INSERT语句和REPLACE语句支持nextval和currval两个方式序列的获取。其中,nextval表示