华为云用户手册

  • API文档记录API接口变更 本条规则是Should类型的扩展规则,可方便管理API的生命周期。 API接口的变更,要具体到参数级别,必须将API修订的记录按照时间和版本顺序排列进行条目化,具体示例如表1所示。 表1 API修订记录 时间 版本 变更内容 2021-07-15 V1.0 XXX服务API初始发布 2021-09-20 V1.1 XXX的API,增加XXX字段,用于XXXX功能;增加XXX字段,用于XXX功能。 XXX的API,增加XXX字段,用于XXX功能。
  • 明确API吞吐量与并发量 本条规则是Should类型的扩展规则,可提升API的可用性。 在API的设计阶段需要对单位时间可处理的能力进行设计,指标包括吞吐量和并发量。 吞吐量(TPS)是指服务在单位时间内处理请求的数量,使用单位时间为秒。 并发量是指服务可以同时承载的正常使用系统功能的用户的数量。 服务API的最大吞吐量/并发量与承诺的服务吞吐量/并发量需要100%吻合。当发现无法达到承诺的吞吐量/并发量时,API提供方应从架构上通过扩容等手段提升吞吐量和并发量。
  • 前提条件 因MTD服务添加的情报/白名单是从OBS桶添加至MTD服务,因此在MTD服务添加情报/白名单时,需要添加的情报/白名单对象文件需已上传至OBS桶中,OBS桶上传对象操作详情请参见上传文件。 由于MTD添加的情报/白名单仅支持Plaintext格式,因此OBS桶上传的对象需按照Plaintext格式编写。Plaintext格式编写详情请参见如何编辑Plaintext格式的对象?。 情报:也称作黑名单,指受访问时被禁止的IP或 域名
  • 告警类型详情 威胁检测服务目前支持3种检测方式,分别是威胁情报、规则基线、AI引擎,详情如表2所示。涵盖68种告警类型。 单条告警根据计算方式和风险系数结果存在单个告警等级或多个告警等级。 表2 检测方式详情 检测方式 检测描述 检测数据源及数量 AI引擎 利用机器学习挖掘陌生访问行为来发现陌生行为是否存在潜在威胁。 IAM 日志:8种 DNS日志:2种 规则基线 遵循已有标准的、固定的规则对日志进行检测。 OBS日志:11种。 威胁情报 基于三方收集的历史有效情报对日志信息进行关联性分析检测,三方情报每天更新一次。 IAM日志: 22种 CTS 日志:5种 VPC日志:12种 DNS日志:11种
  • 迁移评估 数据库迁移上云前需要进行充分地评估和验证。 根据待迁移数据的现状和未来业务规模,分类进行评估和准备,详细信息如表1所示。 表1 迁移前评估和准备 评估项 说明 迁移数据量与DDM、RDS的实例规格 关于源数据库数据拆分,建议采用先垂直拆分,后水平拆分的方式。 对于源MySQ L实例 数据库表占用存储空间,可执行如下SQL语句评估。 select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB')as data from information_schema.TABLES; 建议对数据行数超过1000万行(或者预计超过1000万行)的表进行分片,设计为拆分表。 单RDS实例存储不超过500GB。 源数据库每张表对应逻辑库和逻辑表信息 以表为单位,细化每张源表映射对应逻辑表信息,如记录数、逻辑表类型、所属逻辑库、所属DDM实例和关联RDS实例等。 如果已经有RDS(MySQL)且DDM逻辑库选择非拆分库,则只需要在创建逻辑库时关联该RDS(MySQL)实例即可,不涉及表结构和表数据的迁移。 兼容性 检查源数据库和目标实例的MySQL版本号一致。 目标实例的实例规格和存储空间等原则上不低于源数据库。 检查源数据库和目标实例的表结构和字符集等一致。 “拆分算法”为“hash”的逻辑表单次迁移记录数不超过1000万条;“拆分算法”为“range”的逻辑表单次迁移记录数不超过500万条。 对于数量过大的表可以采用分批导出导入,通过mysqldump指定参数where条件来限定每批的记录数。 导入DDM只支持导入的SQL文本文件含有标准的DML插入语句。 评估应用程序SQL语句在DDM中的兼容性。 迁移前需要收集相关信息,帮助您更好的完成迁移,详细信息如表2所示。 表2 迁移前信息收集 迁移源/目标 信息项 源RDS实例 RDS实例连接地址 RDS实例侦听端口 数据库用户 数据库名称 数据库表名 目标DDM实例 DDM实例连接地址 DDM实例侦听端口 DDM实例用户名 DDM关联RDS实例上创建的数据库名称 新建RDS实例连接地址 新建RDS实例侦听端口 RDS实例用户名 数据库名称 弹性云服务器 弹性IP地址 系统登录用户/密码 父主题: 数据迁移
  • 语法说明 暂不支持以空字符串作为别名。 不支持select ... group by ... with rollup查询(当查询的表为分片表时,无法得到预期的结果)。 暂不支持STRAIGHT_JOIN和NATURAL JOIN。 select for update仅支持简单查询,不支持join、group by、order by、limit。 select后输出字段要和表字段顺序保持一致,如果JOIN查询,将所有参与JOIN的字段都添加到select后的查询字段列表中,这样能提升SELECT查询效率。 对于UNION中的每个SELECT, DDM 暂不支持使用多个同名的列。 例如: 如下SQL的SELECT中存在重复的列名。 SELECT id, id, name FROM t1 UNION SELECT pk, pk, name FROM t2;
  • 常用语法 SELECT[ALL | DISTINCT | DISTINCTROW ]select_expr[, select_expr ...][FROM table_references [WHERE where_condition][GROUP BY {col_name | expr | position} [ASC | DESC], ...][HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...][LIMIT {[offset,] row_count | row_count OFFSET offset}]
  • 操作步骤 登录 分布式数据库 中间件控制台。 在实例管理列表页面,单击目标实例名称,进入实例基本信息页面。 在左侧导航栏选择“逻辑库管理”,查看对应实例逻辑库列表。 在逻辑库列表页面,选择目标逻辑库,操作列单击“删除”。 在删除确认弹窗中,单击“是”。 请勿直接在数据节点列表删除和DDM逻辑库关联的实例,会直接导致逻辑库故障。 如需删除数据节点上的数据,请在删除逻辑库的弹窗中勾选“删除数据节点上的数据”。 如果您想删除逻辑库,请首先确认数据节点是否存在。如果实例已删除,请先单击“同步DN信息”,再进行删除操作。 如果您所连接的数据节点有名称、引擎、引擎版本号、最大连接数max_connections、端口号、IP等信息的修改,不需要删除逻辑库,只需单击“同步DN信息”同步最新配置。
  • 操作步骤 连接DDM实例。 连接方法具体请参考连接DDM实例。 打开dml_test_1逻辑库。 use dml_test_1; 输入命令创建全局序列。 create sequence seq_test; 使用以下语句,实现全局序列在insert语句或者replace语句的使用。 insert into test_seq(col1,col2)values(seq_test.nextval,seq_test.currval); 打开dml_test_2逻辑库。 use dml_test_2; 使用以下语句,实现全局序列在insert语句或者replace语句的使用。 insert into test_seq(col1,col2)values(dml_test_1.seq_test.nextval,dml_test_1.seq_test.currval); 由于全局序列是创建在逻辑库“dml_test_1”下的,在逻辑库“dml_test_2”下使用全局序列需要显式指定逻辑库“dml_test_1.seq_test.nextval”、“dml_test_1.seq_test.currval”。 全局序列结合insert和replace的使用只支持拆分表,不支持广播表和单表。 nextval和currval在insert和replace语句中是从左到右执行的,如果一条语句使用同一个全局序列nextval多次,每出现一次就递增一次。 全局序列是属于逻辑库的,删除逻辑库,所在删除逻辑库的全局序列也会被删除。
  • 操作步骤 连接DDM实例。 连接方法具体请参考连接DDM实例。 连接成功后,打开目标逻辑库。 输入命令创建全局序列。 create sequence seq_test; 输入命令,返回下一个序列值。 select seq_test.nextval; 输入命令,获取当前序列值。 select seq_test.currval; 输入命令,批量获取序列值。 select seq_test.nextval(n); 批量获取序列值场景不支持跨库操作。 未使用过全局序列时,currval的返回值是0。
  • 迁移须知 迁移过程中可能会出现业务中断情况,中断时长与迁移数据量大小、网络情况相关。 数据迁移是一项比较复杂的操作,建议在业务量较低时进行。本指南仅供参考,您需要根据自己业务场景、数据量、停机时间要求等情况,设计合适的迁移方案。 对于数据表和数据量较大的场景,建议您在管理控制台右上角,提交工单或售后服务联系DDM客服进行支撑,在正式数据迁移前进行充分的迁移演练测试。 由于DDM仅支持通过弹性云服务器(E CS )访问,因此需要先将数据库导出为文件并上传到ECS,然后从ECS将文件中的数据导入到DDM。
  • 下载慢日志 登录分布式数据库中间件控制台。 在实例管理列表页面,单击进入目标实例。 单击左侧菜单栏的“慢查询”页签,进入“下载”页面。 在“下载”页面,选择节点,单击“创建慢日志下载” 图2 下载慢日志页面 对于状态为“准备完成”的日志,单击操作列中的“下载”,下载慢日志。系统会自动加载下载准备任务,加载时长受日志文件大小及网络环境影响。 下载准备过程中,文件状态显示为“准备中...”。 下载准备完成,文件状态显示为“准备完成”。 下载准备工作失败,文件状态显示为“准备失败”。 “准备中...”和“准备失败”状态的文件不支持下载。 当前页面支持下载的文件为zip格式,时间范围是从当前时间往前计算,直至zip文件大小累计约为40MB。 下载链接有效期为5分钟。如果超时,提示用户下载链接已失效,是否重新下载。若需重新下载,单击“确定”,否则单击“取消”。
  • 操作步骤 登录分布式数据库中间件控制台。 单击左侧导航栏“参数模板”,在“自定义”页签下单击参数模板名称。 在“参数详情”页签下,根据需要修改相关参数值,相关参数说明请参见实例参数说明。 图1 编辑参数模板 可进行的操作如下: 单击“保存”,在弹出框中单击“是”,保存修改。 单击“取消”,放弃本次设置。 单击“预览”,可对比参数修改前和修改后的值。 参数修改完成后,您可以单击“模板历史记录”查看参数的修改详情。 参数模板修改后,不会立即应用到当前使用的实例,您需要进行应用操作才可生效,具体操作请参见应用参数模板。 修改某些参数或字符集后需要手动重启,由于变更规格导致的强制重启,不会触发该参数生效。 修改配置参数可能影响应用访问DDM实例,请谨慎操作。 修改参数命令下发成功后,预计需要20~60秒生效,请耐心等待。 参数模板修改后,某些参数会立即应用到当前使用实例中,请谨慎操作。
  • 预检查内容 表1 预检查内容 检查内容 检查目的 检查未通过解决方案 表名长度检查 分片变更需要数据重分布时(例如:增加分片),会创建临时表,临时表的表名长度会略长于原表名,需确保临时表的表名长度不超过MySQL限制。 请修改过长的表名。 DN实例binlog全量备份时间检查 客户全量备份是否保留足够长时间。 进入DN console,确保全量备份保留时间大于等于30天。 DN节点binlog必须开启 Binlog必须开启以支持在线变更。 如果您的DN节点是RDS实例,确保Binlog开启。 DN节点binlog本地保留时间检查 Binlog在DN节点上的保留时间必须足够长。 如果您的DN节点是RDS实例,无需解决。 广播表数据一致性检查 保证广播表数据一致后再执行分片变更。 请联系DDM运维人员。 源物理分片的字符集和排序规则检查 保证分片变更后字符的展示和排序一致。 请联系DDM运维人员。 物理表建表语句检查 保证各物理分片上的表结构保持一致。 请先使用check table 命令查询表结构不一致详情,之后再使用alter 语法对表进行修正。 主键检查 要求源库所有表都具有主键,且拆分键是主键一部分以保证分片变更后数据一致性。 如果表不存在主键,请使用alter语句增加主键。 数据库实例链接检查 DN节点是否可连接。 检查安全组等配置。 数据库实例参数检查 源DN节点和目标DN节点数据库关键参数配置需要相同。 请进入DN console对参数配置进行修改。 数据库实例磁盘空间检查 防止分片变更过程中,DN节点磁盘不足。 对DN节点进行磁盘扩容。 注意: 本项检查根据估计值进行判断,极端情况下与实际值有一定差别。 数据库实例时区检查 源DN节点和目标DN节点时区要求相同。 请进入DN console参数配置对时区进行修改。 物理分表个数限制检查 在增加分片场景中,源表每一条数据都需要重新计算路由并分发到新的物理分表中。如果分片变更后物理分表数过多,分片变更耗时过长,需检查单个DN节点的物理分表个数是否超过限制。 请联系客服处理。
  • 常见问题和解决方案 物理表结构不一致导致扩容失败。 解决方案:请先使用check table语句对表结构做一致性检查,并配合alter table等语句对表结构做修正。如果无法进行DDL修正(如主键、唯一键因为数据原因无法修改),请联系运维人员处理。 没有主键的表不支持迁移。 如果没有主键,就无法精确定位记录,在分片变更过程中如果发生重试,可能导致数据增多。 解决方案:增加主键。 分片键不是主键的一部分可能导致逻辑表存在主键重复的数据(因为位于不同的物理分表内)。当数据需要重分布时,这类数据如果路由到同一物理表,由于主键相同,将只会保留一条,必定会导致迁移后的数据量和原来不一致,而导致分片变更失败。 主键是全局唯一序列和分片数不变化的情况下不会发生此种错误。 解决方案:订正数据,再重新校验。
  • 数据库账号权限说明 创建逻辑库、导入逻辑库、分片变更操作时,数据库账号需具备以下权限,建议您创建具备以下权限的账号或直接使用管理员账号进行相关操作。 SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PRO CES S, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER WITH GRANT OPTION。 父主题: 权限管理
  • 操作步骤 登录分布式数据库中间件控制台。 在实例管理列表页面,单击目标实例名称,进入实例基本信息页面。 单击“规格变更”。如果您已经完成创建组操作,请在“组信息”模块中单击“操作”列的“规格变更”。 在变更规格页面,选择实例规格。 单击“下一步”。 确认变更信息,根据所选实例的计费模式进行后续操作。 “按需计费”模式,单击“提交”。 “包年/包月”模式,单击“去支付”。 返回实例管理列表页面,查看当前实例状态为“规格变更中”,也可在任务中心查看变更任务。
  • 监控指标 表1 DDM支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) ddm_cpu_util CPU使用率 该指标用于统计当前DDM节点的CPU利用率。 0~100% DDM节点 1分钟 ddm_mem_util 内存使用率 该指标用于统计当前DDM节点的内存使用率。 0~100% DDM节点 1分钟 ddm_bytes_in 网络输入吞吐量 该指标用于统计当前DDM节点平均每秒的输入流量。 ≥ 0 bytes/s DDM节点 1分钟 ddm_bytes_out 网络输出吞吐量 该指标用于统计当前DDM节点平均每秒的输出流量。 ≥ 0 bytes/s DDM节点 1分钟 ddm_qps QPS 该指标用于统计当前DDM节点的每秒请求数。 ≥ 0 counts DDM节点 1分钟 ddm_read_count 读次数 该指标用于统计当前DDM节点在每个采集周期内新增的读次数。 ≥ 0 counts/s DDM节点 1分钟 ddm_write_count 写次数 该指标用于统计当前DDM节点在每个采集周期内新增的写次数。 ≥ 0 counts/s DDM节点 1分钟 ddm_slow_log 慢SQL数 该指标用于统计数据面服务Core的慢SQL条数。 ≥ 0 counts DDM节点 1分钟 ddm_rt_avg 平均响应时延 该指标用于统计数据面服务Core的SQL平均响应时延。 ≥ 0 ms DDM节点 1分钟 ddm_connections 连接数 该指标用于统计数据面服务Core的连接数。 ≥ 0 counts DDM节点 1分钟 ddm_backend_connection_ratio 后端连接池水位 该指标用于统计当前DDM节点后端活跃连接数与后端最大连接数的比例。 0~100% DDM节点 1分钟 ddm_active_connections 活跃连接数 该指标用于统计每个DDM节点后台正在执行的连接数目。 ≥ 0 DDM节点 1分钟 ddm_connection_util 连接数使用率 该指标用于统计每个DDM节点已用的连接数占总连接数的百分比。 0~100% DDM节点 1分钟 ddm_node_status_alarm_code DDM节点连通性检测 该指标用于检测每个DDM节点是否在集群中不可用。其中,0表示可用,1表示不可用。 0或1 DDM节点 1分钟 ddm_global_sequence_threshold_exceeded_count 超过使用率阈值的全局二级序列个数 此指标统计使用率超过75%的全局序列个数。使用率 = 当前值 / 最大值,默认使用率阈值为75%。全局序列的最大值取决于全局序列类型(例如:BIGINT类型,最大值:2^63-1)。 ≥ 0 counts DDM实例 10分钟
  • 在MySQL客户端执行DDL操作 rename table name不支持与其他DDL语句在同一条SQL执行。 对拆分表执行修改字段名操作的同时执行类似SELECT * [DDL相关表]等包含全字段的查询语句时,有可能会上报列名不存在的异常,建议在业务低峰期执行此类修改操作,且等修改操作执行完成后再进行相关查询操作,以降低报错概率。 在DDM节点或后端RDS节点压力极大的情况下,对拆分表执行删除字段名操作的同时执行SELECT * [DDL相关表]等包含全字段的查询语句时,有可能会上报列名不存在的异常,建议在业务低峰期执行删除类操作,且等删除类操作执行完成后再进行相关查询操作,以降低报错概率。 TRUNCATE Syntax 示例: TRUNCATE TABLE t1; 表示清空表格t1。 TRUNCATE会将表完全清空,它需要DROP权限。在逻辑上类似于删除所有行的DELETE语句。 ALTER TABLE Syntax 示例: ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d; 表示更改表t2的结构,删除c列和d列。 ALTER可以添加或删除列、创建或销毁索引、更改现有列的类型或重命名列或表本身。还可以更改特性,如用于表或表注释的存储引擎。 DROP INDEX Syntax 示例: DROP INDEX `PRIMARY` ON t; 表示删除表t中的主键。 DROP INDEX即从表tbl_name中删除名为index_name的索引。 CREATE INDEX Syntax 示例: CREATE INDEX part_of_name ON customer (name(10)); 表示使用name列的前10个字符创建索引(假设name具有非二进制字符串类型)。 CREATE INDEX用于向现有表添加索引。
  • 开启读写分离 登录分布式数据库中间件控制台。 在实例管理列表页面,选择目标实例。 单击实例名称,进入基本信息页面。 在左侧导航栏,选择“DN管理”页签,单击“开启读写分离”。 在弹窗中单击“确定”,开启读写分离。 对于RDS for MySQL实例来说,开启读写分离后,会将主实例的读权重设置为100,您可以根据业务需求自行调整主实例和只读实例的读权重。 由于只读实例的数据是从主实例异步复制过来的,可能存在可见性延迟。 开启读写分离后,读查询会根据配置的读权重按比例分配至主或只读节点,分配至只读节点的查询可能存在一定的复制延迟。对于不在同一事务中,但是对前一个事务写入的数据存在逻辑依赖的查询语句,建议在查询语句中添加/*+ db_type=master*/,此hint可以指定本次查询强制走主节点,确保查询到前一个事务最新写入的数据。
  • 绑定实例的弹性公网IP 登录分布式数据库中间件控制台。 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。 在“实例信息”模块“弹性公网IP”处,单击“绑定”。 在弹出框的地址列表中,显示“未绑定”状态的弹性公网IP,选择所需绑定的弹性公网IP,单击“确认”,提交绑定任务。 如果没有可用的弹性公网IP,单击“查看弹性公网IP”,获取弹性公网IP。 图1 绑定弹性公网IP弹窗 在实例基本信息页面,查看绑定成功的弹性公网IP。
  • 变更评估 分片变更前,可根据以下几点对分片变更做一个初步的评估,根据评估结果选择适当的新分片数, DDM实例规格和DN实例规格, 以及DN节点个数。 数据量:可用show db status命令来获得目前现网的数据量。 DDM规格:当前DDM实例的CPU个数、内存大小、DDM节点数。 DN规格:当前DN节点的vCPU个数和内存大小以及DN节点数。 业务情况:目前业务规模以及对日后增长趋势的预估。分片变更是重要的数据变更动作,如果DN节点的存储空间足够,建议您推迟执行分片变更操作。 是否增加分片:增加分片意味着拆分规则发生变化,当前逻辑库中所有的数据都需要按照新拆分规则重新计算并移动位置,相比不增加分片的变更需要更大的资源占用,速度也相对较慢。 分片变更过程中是否要执行DDL:当前分片变更过程中,客户读写业务不受影响,但为了保证数据一致性,不允许在分片变更过程中执行DDL,请您合理规划。 客户案例: 某客户当前有DDM实例共4个节点,规格均为8U16GB,关联了6个数据节点(DN实例),数据量约12TB,1000亿条数据,7.3w张物理分表,业务量较大。 由于分片数变化就一定会引起数据重分布,需要迁移逻辑库的全部数据,而且每一条都需要经过重新路由,计算速度上会明显慢于分片数不变的变更。综合考虑客户业务,建议客户先将DDM实例规格升为32U64GB(DDM支持弹性扩缩容, 可以在变更结束后还原为之前的规格),再增加数据节点至12个并升级DDM引擎内核版本到最新版本。由于分片数没有发生变化,仅需要将一半的物理分片从原DN移动到新的DN节点上,且不涉及路由重计算。除非是单个物理表存放的数据量达到上限, 一般建议使用分片数不变, 增加数据节点的平移变更方式。 父主题: 分片变更
  • 事件监控支持的事件说明 表1 分布式数据库中间件 事件来源 事件名称 事件ID 事件级别 事件说明 处理建议 事件影响 DDM 创建实例失败 createDdmInstanceFailed 重要 一般是由于底层资源不足等原因导致。 释放资源后重新创建。 无法创建DDM实例。 变更规格失败 resizeFlavorFailed 重要 一般是由于底层资源不足等原因导致。 请工单联系运维在后台协调资源再重试规格变更操作。 部分节点业务中断。 节点扩容失败 enlargeNodeFailed 重要 一般是由于底层资源不足等原因导致。 请工单联系运维后台协调资源,删除添加失败的节点,重新尝试添加节点。 节点扩容失败。 节点缩容失败 reduceNodeFailed 重要 一般是由于底层释放资源失败等原因导致。 请工单联系运维后台处理资源。 节点缩容失败。 重启实例失败 restartInstanceFailed 重要 一般是由于底层关联数据库实例异常等原因导致。 建议先排查底层数据库实例是否异常,如果无异常请工单联系运维进行排查。 部分节点业务中断。 创建逻辑库失败 createLogicDbFailed 重要 一般是由于以下几种原因导致的: 数据库实例账号密码错误。 DDM实例与底层数据库实例安全组设置错误,导致无法通信。 请排查: 数据库实例账号密码是否错误。 DDM实例与底层数据库实例安全组是否设置正确等问题。 业务无法正常运行。 绑定弹性公网IP失败 bindEipFailed 重要 一般是由于EIP服务繁忙。 稍后重试,紧急情况下请联系运维排查问题。 无法通过公网访问服务。 逻辑库扩容失败 migrateLogicDbFailed 重要 一般是由于底层处理失败。 请工单联系运维处理。 无法实现逻辑库扩容。 逻辑库扩容重试失败 retryMigrateLogicDbFailed 重要 一般是由于底层处理失败。 请工单联系运维处理。 无法实现逻辑库扩容。 父主题: 事件监控
  • SQL高级功能 暂不支持Prepare\EXECUTE语法。 暂不支持用户自定义数据类型、自定义函数。 暂不支持视图、存储过程、触发器、游标。 暂不支持BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE等复合语句。 暂不支类似IF,WHILE等流程控制类语句。 暂不支持的预处理类型: PREPARE EXECUTE 不支持在建表语句中,对索引增加COMMENT形式的注释。 父主题: SQL语法
  • The Subquery as Scalar Operand 示例 SELECT (SELECT id FROM test1 where id=1); SELECT (SELECT id FROM test2 where id=1)FROM test1; SELECT UPPER((SELECT name FROM test1 limit 1)) FROM test2;
  • Subqueries with ANY, IN, NOT IN, SOME,ALL,Exists,NOT Exists 语法 operand comparison_operator SOME (subquery)operand comparison_operator ALL (subquery)operand comparison_operator ANY (subquery) operand IN (subquery) operand not IN (subquery)operand exists (subquery)operand not exists (subquery)
  • 前提条件 DDM实例中已创建逻辑库。 已有RDS for MySQL实例与DDM实例处于相同的VPC,该RDS for MySQL实例没有被其它DDM实例使用。如果需增加DN实例,则DN实例与DDM实例需要处于相同的VPC。 本特性需满足DDM内核版本大于等于3.0.8.3版本,建议您使用最新的内核版本来进行分片变更。 DDM实例关联的数据节点不能处于只读状态。 拆分模式为“非拆分”的逻辑库暂不支持分片变更功能。
  • 账号权限介绍 DDM的权限管理系统参考MySQL的权限管理进行实现,DDM支持大部分的MySQL的语法和权限类型。MySQL账号和权限系统的详细信息请参见MySQL官方文档。 本文档主要介绍DDM账号规则、权限级别、权限项、以及权限操作。 DDM里通过CREATE USER或GRANT语句创建出来的账号属于DDM的账号体系,与DDM关联的RDS没有任何关系,也不会同步到RDS中去。 父主题: 账号权限
  • 建表语法 假设用户的实例里已经分了8个物理库,现有一个业务想按年日进行分库。要求同一天的数据都能落在同一张分表,并且两年以内的每一天都能单独对应一张分表,查询时带上分库分表键后能直接将查询落在某个物理分库的某个物理分表。 用户这时就可以使用YYYYDD分库函数来解决:业务要求两年以内的每天都对应一张分表(即一天一张表),由于一年最多有366天,所以两年至少需要创建732个物理分表才能满足用户的场景。用户的DDM有8个分库,所以每个分库应该建92张物理分表(732 / 8 = 91.5,取整为 92,分表数建议是分库数的整数倍)。建表语法如下所示: create table test_yyyydd_tb ( id int, name varchar(30) DEFAULT NULL, create_time datetime DEFAULT NULL, primary key(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by YYYYDD(create_time) tbpartition by YYYYDD(create_time) tbpartitions 92; 只分库的建表语法: create table YYYYDD(id int,name varchar(30) DEFAULT NULL,create_time datetime DEFAULT NULL,primary key(id)) ENGINE = InnoDB DEFAULT CHARSET = utf8dbpartition by YYYYDD(create_time);
  • 算法计算方式 表1 算法计算方式 条件 算法 举例 分库拆分键 ≠ 分表拆分键 拆分键:yyyy-MM-dd 分库路由结果 = (yyyy * 366 + 一年第几天) % 分库数 分表路由结果 = (yyyy * 366 + 一年第几天) % 分表数 拆分键:2012-12-31 分库 :(2012 * 366 + 366) % 8 = 6 分表:(2012 * 366 + 366) % 3 = 0 分库拆分键 = 分表拆分键(拆分键) 拆分键:yyyy-MM-dd 分表路由结果 = (yyyy * 366 + 一年第几天) % (分库数 * 分表数) 分库路由结果 = 分表路由结果 / 分表数 说明: 分库路由结果四舍五入到最接近的整数。 拆分键:2012-12-31 分库 :(2012 * 366 + 366) % (8*3) = 6 分库 :6 / 3 = 2
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全