PolarDB-X 1.0-用户指南-自定义HINT-HINT简介

简介: 自定义HINT概要HINT 作为一种 SQL 补充语法,在关系型数据库中扮演着非常重要的角色。它允许用户通过相关的语法影响 SQL 的执行方式,对 SQL 进行特殊的优化。同样,PolarDB-X 也提供了特殊的 HINT 语法。例如,假设已知目标数据在某些分库的分表中,需要直接将 SQL 下发到该分库执行,就可以使用PolarDB-X自定义 HINT 来完成。

自定义HINT概要

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

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


  1. SELECT /*+TDDL:node('node_name')*/* FROM table_name;

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

本文适用于PolarDB-X 5.3 及以上版本,其他版本请参见PolarDB-X 5.2 HINT 简介。

注意事项

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

PolarDB-X 自定义 HINT 语法

基本语法:


  1. /*+TDDL: hint_command [hint_command ...]*/
  2. /!+TDDL: hint_command [hint_command ...]*/

PolarDB-X 自定义 HINT 基于MySQL 注释,HINT语句支持/* hint */和/! hint */两种格式,并且必须以+TDDL:开头。其中 hint_command 是 PolarDB-X 自定义 HINT 命令,与具体的操作相关,多个 hint_command 之间使用空格分割。

例子:


  1. # 查询每个分库中的物理表名
  2. /*+TDDL:scan()*/SHOW TABLES;

  3. # 将查询下发到 RDS 只读实例的 0000 分库上
  4. /*+TDDL:node(0) slave()*/SELECT * FROM t1;

例子中 /*+TDDL:scan()*/ 和 /*+TDDL:node(0) slave()*/ 为 PolarDB-X 自定义 HINT 部分,以+TDDL:开头。scan()、node(0)、slave() 为 PolarDB-X 自定义 HINT 命令,多个 HINT 命令之间使用空格分割。

在 SQL 语句中使用 HINT:

PolarDB-X 支持在 DML、DDL、DAL 语句中使用 HINT,具体语法如下:

  • 对于所有支持 HINT 的语句,允许在语句前指定 HINT,如
  1. /*+TDDL: ... */ SELECT ...
  2. /*+TDDL: ... */ INSERT ...
  3. /*+TDDL: ... */ REPLACE ...
  4. /*+TDDL: ... */ UPDATE ...
  5. /*+TDDL: ... */ DELETE ...
  6. /*+TDDL: ... */ CREATE TABLE ...
  7. /*+TDDL: ... */ ALTER TABLE ...
  8. /*+TDDL: ... */ DROP TABLE ...
  9. /*+TDDL: ... */ SHOW ...
  10. ...
  • 对于 DML 语句,允许在首个关键字之后指定 HINT,如
  1. SELECT /*+TDDL: ... */  ...
  2. INSERT /*+TDDL: ... */  ...
  3. REPLACE /*+TDDL: ... */  ...
  4. UPDATE /*+TDDL: ... */  ...
  5. DELETE /*+TDDL: ... */  ...
  6. ...

使用多个 HINT:

PolarDB-X 支持在 HINT 语句中使用多个 HINT 命令


  1. SELECT /*+TDDL:node(0) slave()*/...;

PolarDB-X 不支持通过以下方式使用多个 HINT 命令


  1. # 不支持 单条 SQL 语句中包含多个 HINT 语句
  2. SELECT /*+TDDL:node(0)*//*+TDDL:slave()*/...;

  3. # 不支持 HINT 语句中 包含重复的 HINT 命令
  4. SELECT /*+TDDL:node(0) node(1)*/...;

PolarDB-X 自定义 HINT 分类

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

PolarDB-X 自定义 HINT 兼容性

PolarDB-X 5.3 及以上版本,向下兼容大部分PolarDB-X 5.2 自定义 HINT,详细对照关系如下

PolarDB-X 5.2 HINT 支持情况 对应的 PolarDB-X 5.3 HINT
读写分离 支持 5.2 HINT 语法 5.3 读写分离
备库延迟切断 不支持,添加后不产生效果 无
自定义 SQL 超时时间 支持 5.2 HINT 语法 自定义 SQL 超时时间
指定分库执行 SQL 部分支持, “通过分库键值指定 SQL 在分库上执行” 迁移至 扫描全部分库分表 指定分库执行 SQL
扫描全部分库分表 支持,增加 “根据条件计算物理表名称” 和 “显式指定物理表名” 功能 扫描全部分库分表
相关文章
|
SQL 人工智能 关系型数据库
PolarDB-PG AI最佳实践 2 :PolarDB AI X EAS实现自定义库内模型推理最佳实践
PolarDB通过POLAR_AI插件支持使用SQL调用AI/ML模型,无需专业AI知识或额外部署环境。结合阿里云EAS在线模型服务,可轻松部署自定义模型,在SQL中实现如文本翻译等功能。
|
NoSQL Java 关系型数据库
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
358 0
|
SQL 存储 关系型数据库
PolarDB产品使用合集之有的sql里面有自定义存储函数 如果想走列存有什么优化建议吗
PolarDB是阿里云推出的一种云原生数据库服务,专为云设计,提供兼容MySQL、PostgreSQL的高性能、低成本、弹性可扩展的数据库解决方案,可以有效地管理和优化PolarDB实例,确保数据库服务的稳定、高效运行。以下是使用PolarDB产品的一些建议和最佳实践合集。
628 0
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库PolarDB自定义权限策略参考
本文介绍了自定义权限策略,它是RAM访问控制体系中除系统策略外,用户可创建、更新和删除的权限策略。用户需维护策略版本更新,并将策略绑定到RAM身份以授予权限。策略支持版本控制和删除,但删除前需确保无引用。文章提供了相关操作文档链接,包括创建、修改、删除策略及管理引用记录和版本。此外,列举了PolarDB在MySQL、PostgreSQL和XScale版的自定义权限策略场景和示例,并提示用户在使用时需了解授权信息。
316 0
|
存储 运维 关系型数据库
直播预告 | PolarDB-PG架构简介及日常运维浅析
本次分享将先从架构、特性、开源等三个维度解读PolarDB-PG的整体架构。在大家对架构有一定深入理解后,将继续从备份恢复、存储层、计算层扩容、只读节点提升、高可用等五个维度,对PolarDB-PG的日常运维进行深入浅出的介绍,为“唯手熟尔”的运维打好理论基础。
|
Cloud Native 关系型数据库 分布式数据库
阿里云最新产品手册——阿里云核心产品——云原生关系型数据库PolarDB——简介
阿里云最新产品手册——阿里云核心产品——云原生关系型数据库PolarDB——简介自制脑图
282 2
|
存储 SQL Cloud Native
《阿里云认证的解析与实战-关系型数据库ACP认证》——PolarDB云原生关系型数据库的解析与实践(上)—— 一、PolarDB的产品简介(上)
《阿里云认证的解析与实战-关系型数据库ACP认证》——PolarDB云原生关系型数据库的解析与实践(上)—— 一、PolarDB的产品简介(上)
|
存储 监控 并行计算
《阿里云认证的解析与实战-关系型数据库ACP认证》——PolarDB云原生关系型数据库的解析与实践(上)—— 一、PolarDB的产品简介(下)
《阿里云认证的解析与实战-关系型数据库ACP认证》——PolarDB云原生关系型数据库的解析与实践(上)—— 一、PolarDB的产品简介(下)
|
存储 并行计算 关系型数据库
PolarDB 开源版通过pg_rational插件支持Stern-Brocot trees , 实现高效自定义顺序和调整顺序需求
背景PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力.本文将介绍PolarDB 开源版通过pg_rational插件支持Stern-Bro...
481 0
|
存储 并行计算 Cloud Native
PolarDB 开源版通过pg_rational插件支持Stern-Brocot trees , 实现高效自定义顺序和调整顺序需求
PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力. 本文将介绍PolarDB 开源版通过pg_rational插件支持Stern-Brocot trees , 实现高效自定义顺序和调整顺序需求.
332 0

热门文章

最新文章

相关产品

  • 云原生分布式数据库 PolarDB-X