Todos los productos
Search
Centro de documentos

ApsaraDB RDS:División de transacciones

Última actualización: Sep 03, 2026

La división de transacciones descarga las solicitudes de lectura dentro de transacciones sin confirmación automática desde la instancia principal hacia las instancias de solo lectura, sin necesidad de modificar el código de la aplicación. Cuando todas las consultas se ejecutan dentro de transacciones con la confirmación automática deshabilitada, la instancia principal procesa cada solicitud, aunque las lecturas no requieran acceso de escritura. La división de transacciones enruta esas lecturas a las instancias de solo lectura antes de que comience cualquier operación de escritura; esto reduce la carga en la instancia principal y mejora su estabilidad.

Requisitos previos

Antes de empezar, asegúrese de cumplir con lo siguiente:

Funcionamiento

De forma predeterminada, el proxy de base de datos envía todas las solicitudes dentro de una transacción a la instancia principal para preservar la consistencia de lectura y escritura. Esto es necesario para las operaciones de escritura, pero las solicitudes de lectura previas a cualquier escritura también se envían a la instancia principal, incluso cuando las instancias de solo lectura podrían atenderlas de forma segura.

La división de transacciones modifica este comportamiento cuando se cumplen dos condiciones:

  • El nivel de aislamiento de la transacción es READ COMMITTED (el valor predeterminado de PostgreSQL).

  • La confirmación automática está deshabilitada (autocommit = off).

Bajo estas condiciones, el proxy retrasa la apertura de una transacción en la instancia principal hasta la primera operación de escritura. Todas las solicitudes de lectura emitidas antes de esa escritura se enrutan a las instancias de solo lectura a través del load balancer.

La división de transacciones se habilita automáticamente al activar el proxy de base de datos. No es posible deshabilitarla.

Limitaciones

No todas las transacciones pueden dividirse. Compruebe que la división de transacciones sea adecuada para sus cargas de trabajo antes de habilitar el proxy de base de datos.

Restricción

Detalle

Transacciones explícitas

Las transacciones iniciadas con BEGIN o START TRANSACTION nunca se dividen. Todas las solicitudes de una transacción explícita se dirigen a la instancia principal.

Consistencia global

La división de transacciones no garantiza la consistencia global entre solicitudes. Evalúe esta contrapartida antes de habilitar el proxy de base de datos.

No se puede deshabilitar

Una vez habilitado el proxy de base de datos, la división de transacciones permanece siempre activa. No existe ninguna opción para desactivarla de forma independiente.

Cuándo usar la división de transacciones

La división de transacciones funciona mejor cuando su aplicación agrupa consultas con predominio de lecturas en transacciones sin confirmación automática, sin utilizar instrucciones explícitas como BEGIN o START TRANSACTION.

Escenario

¿Es adecuado?

Aplicaciones con confirmación automática deshabilitada y predominio de lecturas antes de las escrituras

Sí

Transacciones explícitas que usan BEGIN o START TRANSACTION

No: las lecturas permanecen en la instancia principal

Cargas de trabajo que requieren consistencia global estricta en todas las lecturas

No: no se puede garantizar la consistencia global

Referencia de API

Operación

Descripción

DescribeDBProxy

Consulta los detalles de un proxy de base de datos

DescribeDBProxyEndpoint

Consulta la información de un endpoint de proxy de base de datos