更新时间:2022-05-17 GMT+08:00
分享

数据库代理使用规范建议

rdsProxy是数据库代理帐户,属于RDS数据库内置账号,建议您不要创建同名帐户,避免影响读写分离功能正常运行。

功能限制

  • 开启读写分离功能后,删除RDS for MySQL主实例,会同步删除只读实例,并关闭读写分离功能。
  • 读写分离不支持RDS for MySQL8.0的caching_sha2_password身份认证插件。
  • 开启读写分离功能后,主实例和只读实例均不允许修改数据库端口、安全组和内网地址。
  • 读写分离功能不支持SSL加密。
  • 读写分离功能不支持压缩协议。
  • 读写分离不支持事务隔离级别READ-UNCOMMITTED。
  • 如果执行了Multi-Statements,当前连接的后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。
  • 使用读写分离的连接地址时,事务请求都会路由到主实例(可以使用事务拆分功能对事务中写之前的读请求进行拆分),不保证非事务读的一致性,业务上有读一致性需求可以封装到事务中。
  • 使用读写分离的连接地址时,LAST_INSERT_ID()函数仅支持在事务中使用。

语法限制

读写分离请求路由原理:客户的前端请求会根据当前数据库节点权重的配置,随机路由到后端任一数据库节点。

因此,一些SQL语句多次执行的结果可能存在差异,部分语句列举如下:

  • 使用读写分离的连接地址时,show processlist命令的执行结果不具有一致性。
  • 使用读写分离的连接地址时,不支持kill query类型操作。
  • 使用读写分离的连接地址时,不支持使用show errors和show warnings命令。
  • 使用读写分离的连接地址时,不支持用户自定义变量,如SET @variable语句。
  • 使用读写分离的连接地址时,如果存储过程(procedure)和函数(function)中依赖 了用户变量,即@variable,则运行结果可能不正确。
分享:

    相关文档

    相关产品

close