全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
分布式关系型数据库 DRDS

自定义 HINT 简介

更新时间:2017-12-11 21:28:15

DRDS 自定义 HINT 概要

HINT 作为一种 SQL 补充语法,在关系型数据库中扮演着非常重要的角色。它允许用户通过相关的语法影响 SQL 的执行方式,从对 SQL 进行特殊的优化。同样,DRDS 也提供了特殊的 HINT 语法。

例如,假设已知目标数据在某些分库的分表中,需要直接将 SQL 下发到该分库执行,就可以使用 DRDS 自定义 HINT 来完成。

/!TDDL:NODE IN('node_name', ...)*/SELECT * FROM table_name;

这个 SQL 语句中/!*/之间的语句就是 DRDS 的自定义 HINT,即TDDL:node in('node_name', ...),它指定了 SQL 语句在特定的 RDS 分库上执行。

注意:

  • DRDS 自定义 HINT 支持 /!TDDL:hint command*//*TDDL:hint command*/ 两种格式。

  • 如果使用 /*TDDL:hint command*/ 格式,在使用 MySQL 官方命令行客户端执行带有 DRDS 自定义 HINT 的 SQL 时,请在登录命令中加上 -c 参数。否则,由于 DRDS 自定义 HINT 是以 MySQL 注释 形式使用的,该客户端会将注释语句删除后再发送到服务端执行,导致 DRDS 自定义 HINT 失效。具体请查看 MySQL 官方客户端命令

DRDS 自定义 HINT 语法

基本语法:

 /!TDDL:hint command*/

DRDS 自定义 HINT 是借助于 MySQL 注释实现的,也就是 DRDS 的自定义 HINT 语句位于/!*/之间,并且必须以TDDL:开头。其中 hint command 是 DRDS 自定义 HINT 命令,与具体的操作相关。例如下面的 SQL 语句通过 DRDS 的自定义 HINT 展示每个分库的表名。

/!TDDL:SCAN*/SHOW TABLES;

该 SQL 语句中 /!TDDL:SCAN*/ 为 DRDS 自定义 HINT 部分,以TDDL:开头,SCAN 为 DRDS 自定义 HINT 命令。

DRDS 自定义 HINT 分类

根据操作类型的不同,DRDS 的自定义 HINT 主要可以分为以下几类:

本文导读目录