PolarDB-X 1.0-SQL 手册-Hint-读写分离

简介: 本文介绍了读写分离类的Hint语法。

本文适用于PolarDB-X 5.3及以上版本。

PolarDB-X提供了一种针对应用层透明的读写分离实现。但是由于RDS主实例与只读实例之间数据的同步存在着毫秒级别的延迟,如果在主库中变更以后需要马上读取变更的数据,则需要保证将读取数据的SQL下发到主实例中。针对这种需求,PolarDB-X提供了读写分离自定义HINT,指定将SQL下发到主实例或者只读实例。

语法


/*+TDDL:
    master()
    | slave()
*/

在该自定义HINT中可以指定SQL是在主实例上执行还是在只读实例上执行。对于/*+TDDL:slave()*/,如果一个主RDS实例存在多个只读实例,那么PolarDB-X会根据所分配的权重随机选择一个只读实例执行SQL语句。

注意事项

  • 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 官方客户端命令

示例

  • 指定SQL在主实例上执行:
SELECT /*+TDDL:master()*/ * FROM table_name;
  • 在SQL第一个关键字之后添加/*+TDDL:master()*/这个自定义HINT后,这条SQL将被下发到主实例上执行。
  • 指定SQL在只读实例上执行:
SELECT /*+TDDL:slave()*/ * FROM table_name;
  • 在SQL第一个关键字之后添加/*+TDDL:slave()*/这个自定义HINT后,这条SQL将会根据所分配的权重被随机下发到某个只读实例上执行。说明
  • 此读写分离自定义HINT仅仅针对非事务中的读SQL语句生效,如果SQL语句是写SQL或者SQL语句在事务中,那么还是会下发到RDS的主实例执行。
  • PolarDB-X针对/*+TDDL:slave()*/自定义HINT,会从只读实例中按照权重随机选取一个下发SQL语句执行。若只读实例不存在时,不会报错,而是选取主实例执行。
相关文章
|
6月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
515 3
|
10月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
617 1
|
SQL 存储 关系型数据库
关系型数据库SQLserver基本 SQL 操作
【7月更文挑战第28天】
230 4
|
12月前
|
SQL
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
|
SQL 关系型数据库 分布式数据库
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
382 14
【YashanDB 知识库】使用 leading hint 调整 SQL 执行计划后报错 YAS-04522 invalid hint leading
在 YashanDB 的所有版本中,使用 leading hint 调整 SQL 执行计划时可能出现“YAS-04522 invalid hint leading”错误,导致 SQL 无法正常执行。原因是 YashanDB 优化器的 Bug。解决方法为避免使用 leading hint。可通过创建测试表 a、b、c 并执行特定 SQL 语句来验证问题是否存在。
|
SQL 安全 关系型数据库
关系型数据库SQL server DELETE 语句
【8月更文挑战第3天】
486 10
|
SQL 关系型数据库 数据库
关系型数据库SQL server UPDATE 语句
【8月更文挑战第3天】
667 10
|
SQL 关系型数据库 BI
关系型数据库SQL server INSERT 语句
【8月更文挑战第3天】
527 9
|
SQL 关系型数据库 数据库

热门文章

最新文章

相关产品

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