检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
例如ECS、DDM、RDS分别配置了安全组:sg-ECS、sg-DDM、sg-RDS。 例如DDM实例服务端口为5066,RDS for MySQL实例服务端口为3306。 以下规则,远端可使用安全组,也可以使用具体的IP地址。 ECS所在安全组需要增加下图中的入方向规则,以保证客户端能正常访问DDM实例:
SQL高级功能 暂不支持Prepare\EXECUTE语法。 暂不支持用户自定义数据类型、自定义函数。 暂不支持视图、存储过程、触发器、游标。 暂不支持BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE等复合语句。
PLUGIN语句。 不支持非 ascii/latin1/binary/utf8/utf8mb4 的字符集。 不支持SYS schema。 不支持MySQL追踪优化器。 不支持X-Protocol。 不支持CHECKSUM TABLE 语法。 不支持表维护语句,包括CHECK/CHECKSUM/OPTIMIZE/REPAIR
SQL语法类 DDM是否支持分布式JOIN 如何进行SQL优化 DDM是否支持数据类型强制转换 如何处理INSERT语句批量插入多条数据时报错
"engine_version": "3.1.0.3", "level": 1, "suggest": "偶发场景下MySQL客户端无法正确结束查询的问题,建议在业务低峰期升级到3.1.0.7稳定版本。", "influence": "DDM实例升级
实用SQL语句 CHECK TABLE SHOW RULE SHOW TOPOLOGY SHOW DATA NODE TRUNCATE TABLE HINT- ALLOW_ALTER_RERUN LOAD DATA SHOW PHYSICAL PROCESSLIST 自定义HINT读写分离
配置SQL黑名单 配置SQL黑名单即配置该逻辑库不允许执行的SQL语句。 该功能主要用于解决用户某类突发的并发过高的SQL导致DDM实例不稳定的场景。 操作步骤 登录分布式数据库中间件控制台。 在实例管理列表页面,选择目标DDM实例,单击实例名称,进入实例基本信息页面。 在左侧导
参数说明 取值范围 缺省值 bind_table 用于描述多个拆分表的内在数据关联性,用于告知优化器在处理join时,把join下推到MySQL层执行。参数举例请详见表下的说明。 格式要求: [{<table1>.<column1>,<table2>.<column2>},{<table1>
如何进行SQL优化 尽量避免使用LEFT JOIN或RIGHT JOIN,建议使用INNER。 在使用LEFT或RIGHT JOIN时,ON会优先执行,WHERE条件在最后执行,所以在使用过程中,条件尽可能在ON语句中判断,减少WHERE的执行。 尽量少用子查询,改用JOIN,避免大表全表扫描。
通过HINT指定分片直接执行SQL DDM提供HINT在一个或多个分片上执行SQL语句。 HINT支持以下两种格式: 一个分片上执行SQL:/*+db=<physical_db_name>*/ <your query>; 多个分片上执行SQL:/*+db={<physical_db_name1>
必须以小写字母开头。 可以包含小写字母、数字、下划线,不能包含大写字母和其它特殊字符。 禁用关键字: "information_schema"、"mysql"、"performance_schema"、"sys"。 最小长度:2 最大长度:48 shard_mode 是 String 逻辑库的拆分模式。
SHOW TOPOLOGY 命令格式: 查看数据库下指定逻辑表的物理分布情况。 show topology from <table_name> 输出详解: Rds_instance_id:RDS的实例ID。 HOST :IP 。 PORT :端口 。 DATABASE :物理库 。
CHECK TABLE 检查当前逻辑库下所有逻辑表各分表的DDL一致性 检查某一张逻辑表各分表的DDL一致性 父主题: 实用SQL语句
SHOW RULE 命令格式: 查看数据库下每一个逻辑表的拆分情况。 show rule 查看数据库下指定逻辑表的拆分情况。 show rule from <table_name> 输出详解: TABLE_NAME :表名。 BROADCAST:是否为广播表(0:否,1:是)。
HINT-DB 命令格式: /*+db=<physical_db_name>*/ TRUNCATE TABLE <table_name> 描述: 删除对应的<physical_db_name>物理库下对应的所有的<table_name>的分表数据,其余分库的表不受影响。 父主题:
HINT-TABLE 命令格式: /*+table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除当前库下表名<physical_table_name>的所有物理表的数据,其余分表不受影响。 删除前示例: 删除后示例:
补充说明 HINT对于所有的单表以及全局表失效,只对各种分表起作用。 父主题: TRUNCATE TABLE
"ead1e945-ca89-45dd-bcce-4a30b2054c22" }, { "available_zone": "az2", "subnet_id": "ead1e945-ca89-45dd-bcce-4a30b2054c22"
”之类运算符相对较多的场景。 如果分库算法是range类+日期函数,且拆分键字段又表示创建时间,在数据入库时可能造成热点问题,无法充分利用多MySQL的优势。 拆分算法的使用,需要结合业务查询场景进行评估,以选择合适的拆分算法,提升DDM效率。 如何选择拆分键 拆分键是在水平拆分逻辑表
HINT-DB/TABLE 命令格式: /*+db=<physical_db_name>,table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除库名为<physical_db_name>下表名为<physi