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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文介绍了读写分离类的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语句执行。若只读实例不存在时,不会报错,而是选取主实例执行。
相关实践学习
跟我学:如何一键安装部署 PolarDB-X
《PolarDB-X 动手实践》系列第一期,体验如何一键安装部署 PolarDB-X。
相关文章
|
7天前
|
存储 SQL 关系型数据库
PolarDB这个sql行存和列存性能差别好大 ,为什么?
PolarDB这个sql行存和列存性能差别好大 ,为什么?
41 0
|
5月前
|
关系型数据库 BI 分布式数据库
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
无需创建和开通资源,在预置环境中免费体验PolarDB MySQL及其NL2BI解决方案
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
|
8月前
|
SQL 关系型数据库 MySQL
OBCP第四章 SQL调优-Hint
OBCP第四章 SQL调优-Hint
209 0
|
7月前
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
258 0
|
6天前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
【2月更文挑战第22天】在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
16 1
|
8月前
|
SQL 关系型数据库 分布式数据库
drds和polardb的sql语句分别有哪些
drds和polardb的sql语句分别有哪些
98 1
|
6天前
|
关系型数据库 中间件 数据库连接
drds读写分离与只读实例
drds读写分离与只读实例
40 3
|
5月前
|
关系型数据库 MySQL 数据库
史上最全的MySQL性能手册(优化+SQL+并发+数据库)
史上最全的MySQL性能手册(优化+SQL+并发+数据库)
|
6月前
|
SQL 关系型数据库 分布式数据库
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
674 6
|
7月前
|
NoSQL 关系型数据库 MySQL
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等,阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
125 0

相关产品

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