PolarDB-X 1.0-用户指南-自定义HINT-读写分离

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: PolarDB-X 提供了一种针对应用层透明的读写分离实现。但是由于 RDS 主实例与只读实例之间数据的同步存在着毫秒级别的延迟,如果在主库中变更以后需要马上读取变更的数据,则需要保证将读取数据的 SQL 下发到主实例中。针对这种需求,PolarDB-X 提供了读写分离自定义 HINT,指定将 SQL 下发到主实例或者只读实例。本文适用于PolarDB-X 5.3 及以上版本,其他版本请参见PolarDB-X 5.2 HINT 简介。

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

本文适用于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 官方客户端命令

语法


  1. /*+TDDL:
  2.    master()
  3.    | slave()
  4. */

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

示例

  • 指定 SQL 在主实例上执行
  1. SELECT /*+TDDL:master()*/* FROM table_name;
  • 在 SQL 第一个关键字之后添加 /*+TDDL:master()*/ 这个自定义 HINT 后,这条 SQL 将被下发到主实例上执行。
  • 指定 SQL 在只读实例上执行
  1. 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 中各个节点的含义,以及如何对不同配置的PolarDB-x 进行压测。
相关文章
|
5月前
|
关系型数据库 Go PostgreSQL
golang pgx自定义PostgreSQL类型
golang的pgx驱动提供了大约70种PostgreSQL类型支持,但还是有一些类型没有涵盖,本文介绍如何自己编写代码支持特殊的类型。
78 3
|
2月前
|
关系型数据库 中间件 数据库连接
drds读写分离与只读实例
drds读写分离与只读实例
30 3
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云最新产品手册——阿里云核心产品——云原生关系型数据库PolarDB——读写分离
阿里云最新产品手册——阿里云核心产品——云原生关系型数据库PolarDB——读写分离自制脑图
73 1
|
11月前
|
分布式数据库 调度 数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践
483 0
|
11月前
|
分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(2)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(2)
394 0
|
11月前
|
分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(3)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(3)
523 0
|
11月前
|
SQL 分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(4)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(4)
703 0
|
11月前
|
SQL 分布式数据库 数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(5)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(5)
482 0
|
存储 负载均衡 Cloud Native
PolarDB 开源版 使用pgpool-II实现透明读写分离
PolarDB 开源版 使用pgpool-II实现透明读写分离. pgpool-II是PostgreSQL读写分离中间件, 由于PolarDB是计算存储分离架构, 和aws aurora一样, 只需要配置pgpool的负载均衡, 不需要配置它ha功能. ha功能建议采用polardb开源生态产品, 例如乘数科技的集群管理软件, 配置pgpool时使用rw, ro节点对应的vip即可(vip由乘数的集群管理软件来管理).
525 0
|
存储 运维 关系型数据库
PolarDB-X 读写分离与 HTAP| 学习笔记
快速学习 PolarDB-X 读写分离与 HTAP。
336 0
PolarDB-X 读写分离与 HTAP| 学习笔记

热门文章

最新文章

相关产品

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