更新时间:2024-04-11 GMT+08:00

读写分离简介

读写分离是指通过一个读写分离的连接地址实现读写请求的自动转发。创建只读实例后,您可以开通读写分离功能,通过RDS的读写分离连接地址,写请求自动访问主实例,读请求按照读权重设置自动访问各个实例。

读写分离地址都是内网地址,只能通过内网连接。

功能限制

由于开启读写分离时,系统会自动删除已有的账户rdsProxy,然后自动创建新的rdsProxy账户,关闭读写分离时,系统也会自动删除已有的账户rdsProxy。因此,建议您不要创建rdsProxy账户,防止被系统误删除。

  • 开启读写分离功能后,删除RDS for MySQL主实例,会同步删除只读实例,并关闭读写分离功能。
  • 开启读写分离功能后,主实例和只读实例均不允许修改数据库端口、安全组和内网地址。
  • 读写分离功能不支持SSL加密。
  • 读写分离功能不支持压缩协议。
  • 读写分离不支持事务隔离级别READ-UNCOMMITTED。
  • 如果执行了Multi-Statements,当前连接的后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。
  • 使用读写分离的连接地址时,事务请求都会路由到主实例,不保证非事务读的一致性,业务上有读一致性需求可以封装到事务中。
  • 使用读写分离的连接地址时,LAST_INSERT_ID()函数仅支持在事务中使用。
  • 使用读写分离的连接地址时,show processlist命令的执行结果不具有一致性。
  • 使用读写分离的连接地址时,不支持使用show errorsshow warnings命令。
  • 使用读写分离的连接地址时,不支持用户自定义变量,如SET @variable语句。
  • 使用读写分离的连接地址时,如果存储过程(procedure)和函数(function)中依赖了用户变量,即@variable,则运行结果可能不正确。