Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-06-06 GMT+08:00

Sugerencias sobre el uso del proxy de base de datos

rdsProxy es una cuenta de proxy de base de datos interna para RDS. Para garantizar una división de lectura/escritura adecuada, se recomienda no crear una cuenta con el mismo nombre que rdsProxy.

Restricciones de función

  • Si la separación de lectura/escritura está habilitada y se elimina una instancia principal de RDS for MySQL, sus réplicas de lectura también se eliminan y la separación de lectura/escritura está deshabilitada.
  • La separación de lectura/escritura no es compatible con el complemento de autenticación de identidad caching_sha2_password para RDS for MySQL 8.0.
  • Después de habilitar la separación de lectura/escritura, no se pueden cambiar los puertos de base de datos, los grupos de seguridad y las direcciones IP flotantes de la instancia principal y las réplicas de lectura.
  • La separación de lectura/escritura no admite SSL.
  • La separación de lectura/escritura no admite protocolos de compresión.
  • La separación de lectura y escritura no admite el nivel de aislamiento READ UNCOMMITTED.
  • Si se ejecutan estados múltiples, todas las solicitudes posteriores se encaminarán a la instancia principal. Para restaurar la separación de lectura/escritura, desconecte la conexión entre su aplicación y la dirección de separación de lectura/escritura y establezca una conexión de nuevo.
  • Cuando se utiliza la dirección de separación de lectura/escritura, todas las solicitudes de transacción se enrutan a la instancia principal (puede utilizar la función de separación de transacciones para enrutar solicitudes de lectura antes de escribir operaciones en una transacción para leer réplicas). No se garantiza la coherencia de la lectura sin transacción. Para garantizar la coherencia de la lectura, encapsule las solicitudes de lectura en una transacción.
  • Cuando se utiliza la dirección de separación de lectura/escritura, la función LAST_INSERT_ID() solo se puede utilizar en transacciones.
  • Cuando se utilizan variables definidas por el usuario, las sentencias que contienen variables definidas por el usuario se enrutan a la instancia principal.
  • Los proxies de base de datos no admiten lecturas y escrituras en ninguna columna que contenga más de 16 MB de datos en una tabla.
  • Cuando se utiliza un proxy de base de datos, el tamaño de una sentencia SQL concatenada no puede exceder los 100 MB para evitar que el análisis de sentencias consuma demasiados recursos.
  • Cuando se utiliza un cliente.NET para conectarse a proxies de base de datos, la versión del controlador MySQL.Data del cliente debe ser 8.0.19 o posterior porque las versiones de controladores anteriores pueden ser incompatibles con los proxies de base de datos.

Restricciones de sintaxis

La separación de lectura/escritura enruta las solicitudes de frontend a los nodos de instancia de backend por las ponderaciones configuradas.

Por lo tanto, algunas sentencias SQL pueden tener resultados diferentes cuando se ejecutan varias veces.

  • Cuando se utiliza la dirección de separación de lectura/escritura, los resultados de ejecución del comando show processlist son inconsistentes.
  • Cuando se utiliza la dirección de separación de lectura/escritura, no se admite la operación kill query.
  • Cuando se utiliza la dirección de separación de lectura/escritura, los comandos show errors y show warnings no son compatibles.
  • Cuando se utiliza la dirección de separación de lectura/escritura, si los procedimientos y funciones almacenados dependen de variables de usuario (@variable), el resultado de la ejecución puede ser incorrecto.