Todos los productos
Search
Centro de documentos

PolarDB:División de lectura y escritura

Última actualización: Sep 05, 2026

PolarDB for MySQL Los clústeres de PolarDB for MySQL incluyen una función integrada de división de lectura y escritura. Su aplicación solo necesita conectarse a un único endpoint de clúster en Read/Write (Automatic Read/Write Splitting). Las solicitudes de escritura se reenvían automáticamente al nodo principal. Las solicitudes de lectura se dirigen al nodo principal o a un nodo de solo lectura, según la carga de cada nodo (la cantidad de solicitudes actuales sin terminar).

Beneficios

  • Read Consistency

    Cuando un cliente se conecta al backend mediante un endpoint de clúster, el middleware de división de lectura y escritura establece conexiones con el nodo principal y con cada nodo de solo lectura de forma automática. Dentro de una misma conexión (sesión), el middleware selecciona el nodo más adecuado al comprobar el estado de sincronización de datos de cada nodo de base de datos. Este método garantiza resultados correctos, ya que las lecturas posteriores a escrituras devuelven los datos esperados. Además, proporciona balanceo de carga para las solicitudes de lectura y escritura.

    示意图

  • División nativa de lectura y escritura para un mejor rendimiento

    Si usted construye su propia capa de proxy en la nube para implementar la división de lectura y escritura, las solicitudes deben pasar por varios componentes para el análisis sintáctico y el reenvío de SQL antes de llegar a la base de datos, lo cual aumenta la latencia. En cambio, la división de lectura y escritura de PolarDB está integrada directamente en el enlace de alta seguridad existente. No añade componentes adicionales ni sobrecarga, por lo que reduce la latencia y mejora el rendimiento.

  • Mantenimiento simplificado

    En un modelo tradicional, debe configurar en su aplicación los endpoints de conexión del nodo principal y de cada nodo de solo lectura. También necesita dividir la lógica de negocio para asegurar que las solicitudes de escritura se envíen al nodo principal y las de lectura a todos los nodos.

    PolarDB proporciona un único endpoint de clúster. Una vez que su aplicación se conecta a este endpoint, puede ejecutar operaciones de lectura y escritura en los nodos principales y de solo lectura. Las solicitudes se reenvían de manera automática y la lógica de enrutamiento es completamente transparente, lo que reduce los costos de mantenimiento.

    También puede aumentar la capacidad de procesamiento si añade más nodos de solo lectura, sin modificar su aplicación.

  • Comprobaciones de estado de los nodos para alta disponibilidad

    El módulo de división de lectura y escritura comprueba automáticamente el estado de todos los nodos del clúster. Si un nodo falla o su latencia supera un umbral especificado, PolarDB deja de enrutar solicitudes de lectura hacia ese nodo. Luego, las solicitudes se distribuyen entre los nodos sanos restantes. Esto garantiza que la falla de un solo nodo de solo lectura no afecte su aplicación. Cuando el nodo se recupera, PolarDB lo vuelve a añadir automáticamente al pool de enrutamiento.

  • Uso gratuito, con menores costos de recursos y mantenimiento

    La función de división de lectura y escritura se ofrece sin costo adicional.

Lógica de enrutamiento de solicitudes

En el modo Read/Write, las solicitudes se enrutan de la siguiente manera:

  • Se reenvían únicamente al nodo principal:

    • Todas las operaciones DML (INSERT, UPDATE, DELETE y SELECT FOR UPDATE)

    • Todas las operaciones DDL (como crear o eliminar bases de datos y tablas, alterar esquemas de tablas y gestionar permisos)

    • Todas las solicitudes dentro de una transacción cuando la división de transacciones está deshabilitada

      Nota

      Para conocer los detalles de enrutamiento cuando la división de transacciones está habilitada, consulte transaction splitting.

    • Funciones definidas por el usuario

    • Procedimientos almacenados

    • Instrucciones LOCK/UNLOCK TABLES

    • Consultas Multi-statement

    • Solicitudes que usan tablas temporales

    • SELECT last_insert_id()

    • Todas las consultas y modificaciones de variables de usuario

    • Solicitudes binlog dump

  • Se reenvían a los nodos de solo lectura o al nodo principal:

    Nota

    Las solicitudes se reenvían al nodo principal solo cuando Primary Node Accepts Read Requests está establecido en Yes.

    • Solicitudes de lectura fuera de una transacción

    • Transacciones de solo lectura (START TRANSACTION READ ONLY)

  • Siempre se reenvían a todos los nodos:

    • Todos los cambios en las variables del sistema

    • El comando USE

    • Los comandos PREPARE y DEALLOCATE PREPARE

    • Comandos como COM_CHANGE_USER, COM_RESET_CONNECTION, COM_QUIT y COM_SET_OPTION

    • SHOW PROCESSLIST

      Nota

      Cuando ejecuta el comando SHOW PROCESSLIST, PolarDB devuelve la información de la lista de procesos de todos los nodos.

    • KILL (la instrucción KILL en SQL, no el comando KILL de la línea de comandos)

En Read Only, las solicitudes se enrutan de la siguiente manera:

  • No se permiten operaciones DDL ni DML.

  • Todas las solicitudes de lectura se reenvían a los nodos de solo lectura mediante balanceo de carga.

  • Las solicitudes de lectura nunca se reenvían al nodo principal, incluso si este se añadió a los nodos de servicio.

  • PolarDB fija un binlog dump a un nodo de solo lectura específico.

Funciones

La división de lectura y escritura de PolarDB incluye a continuación varias funciones: