检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
SQL语法类 DDM是否支持分布式JOIN 如何进行SQL优化 DDM是否支持数据类型强制转换 如何处理INSERT语句批量插入多条数据时报错
实用SQL语句 CHECK TABLE SHOW RULE SHOW TOPOLOGY SHOW DATA NODE TRUNCATE TABLE HINT- ALLOW_ALTER_RERUN LOAD DATA SHOW PHYSICAL PROCESSLIST 自定义HINT读写分离
SQL高级功能 暂不支持Prepare\EXECUTE语法。 暂不支持用户自定义数据类型、自定义函数。 暂不支持视图、存储过程、触发器、游标。 暂不支持BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE等复合语句。
如果REPLACE语句中拆分键的值是非法的,数据默认会路由到0号分库或者0号分表。 不建议在REPLACE语句中使用VERSION、DATABASE、USER函数,此类函数结果受语句是否下推至DN节点执行影响,执行结果可能不符合预期。 父主题: DML
tables information_schema.columns 索引查询:SHOW KEYS FROM <table> FROM <database> 说明: 仅支持=、in、like三种操作符,和and条件关联。 不支持子查询、关联查询、排序、聚合查询、LIMIT等等复杂查询。
配置SQL黑名单 配置SQL黑名单即配置该逻辑库不允许执行的SQL语句。 该功能主要用于解决用户某类突发的并发过高的SQL导致DDM实例不稳定的场景。 操作步骤 登录分布式数据库中间件控制台。 在实例管理列表页面,选择目标DDM实例,单击实例名称,进入实例基本信息页面。 在左侧导
使用限制 如果INSERT语句中拆分键的值是非法的,数据默认会路由到0号分库或者0号分表。 不建议在INSERT语句中使用VERSION、DATABASE、USER函数,此类函数结果受语句是否下推至DN节点执行影响,执行结果可能不符合预期。 不建议INSERT DUPLICATE语句更
通过HINT指定分片直接执行SQL DDM提供HINT在一个或多个分片上执行SQL语句。 HINT支持以下两种格式: 一个分片上执行SQL:/*+db=<physical_db_name>*/ <your query>; 多个分片上执行SQL:/*+db={<physical_db_name1>
如何进行SQL优化 尽量避免使用LEFT JOIN或RIGHT JOIN,建议使用INNER。 在使用LEFT或RIGHT JOIN时,ON会优先执行,WHERE条件在最后执行,所以在使用过程中,条件尽可能在ON语句中判断,减少WHERE的执行。 尽量少用子查询,改用JOIN,避免大表全表扫描。
数据库表名是否区分大小写 DDM默认对databaseName、tableName、columnName、columnValue不区分大小写。 父主题: RDS相关类
如何处理DDM逻辑库与RDS实例的先后关系 DDM逻辑库与关联的RDS强相关,不允许直接删除关联的RDS,这会导致业务不可用且逻辑库也会删除失败。如果需要删除,先删除逻辑库再删除RDS。 父主题: DDM使用类
TRUNCATE TABLE HINT-DB HINT-TABLE HINT-DB/TABLE 补充说明 父主题: 实用SQL语句
”之类运算符相对较多的场景。 如果分库算法是range类+日期函数,且拆分键字段又表示创建时间,在数据入库时可能造成热点问题,无法充分利用多MySQL的优势。 拆分算法的使用,需要结合业务查询场景进行评估,以选择合适的拆分算法,提升DDM效率。 如何选择拆分键 拆分键是在水平拆分逻辑表
CHECK TABLE 检查当前逻辑库下所有逻辑表各分表的DDL一致性 检查某一张逻辑表各分表的DDL一致性 父主题: 实用SQL语句
SHOW RULE 命令格式: 查看数据库下每一个逻辑表的拆分情况。 show rule 查看数据库下指定逻辑表的拆分情况。 show rule from <table_name> 输出详解: TABLE_NAME :表名。 BROADCAST:是否为广播表(0:否,1:是)。
补充说明 HINT对于所有的单表以及全局表失效,只对各种分表起作用。 父主题: TRUNCATE TABLE
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-DB/TABLE 命令格式: /*+db=<physical_db_name>,table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除库名为<physical_db_name>下表名为<physi
通过只读组进行SQL查询时,请先确保当前关联的数据节点已经挂载了只读实例且正常运行。以下报错情况可能是因为没有挂载只读实例或者只读实例运行异常导致的: backend database connection error; query has been canceled execute error: No read-only