Tipos de replicación en MySQL
Replicación asíncrona estándar: Significa que la transacción es completada en el ambiente local y no se ve afectada por los propios esclavos de replicación. Después de que son completados los cambios, el master rellena el log binario con la modificación de los datos o la sentencia actual. Este hilo de volcado lee el registro binario y lo envía al hilo esclavo. El esclavo lo coloca en su propia cola de pre procesamiento (llamada relay log) usando su subproceso. El esclavo ejecuta cada cambio en la base de datos de los esclavos usando hilos SQL.
Replicación semi asíncrona: Significa que el esclavo y el maestro se comunican uno con otro para garantizar la correcta transferencia de la transacción. El maestro solo rellena el log binario (binlog) y continua su sesión si uno de los esclavos confirma que la transacción fue colocada correctamente en uno de registros (relaylog) del esclavo.
Este tipo de replicación impacta en el desempeño porque el maestro necesita esperar para continuar procesando la transacción, esto hasta que al menos uno de los esclavos acepte la transacción (o la rechacé por timeout).
Replicación basada en sentencias: La consulta SQL es escrita en el log binario. Las mismas instrucciones INSERT / UPDATE / DELETE son ejecutadas por el esclavo.
Ventajas y desventajas de este sistema:
- Auditar la base de datos es más fácil ya que las sentencias reales son registradas en el log binario.
- Menos datos son transferidos sobre la red.
- Las consultas no deterministas pueden crear estragos en el entorno esclavo.
- Puede disminuir el rendimiento con algunas consultas utilizando la replicación basada en instrucciones.
- La replicación basada en sentencias es más lenta debido a la optimización y ejecución de SQL.
Algunas ventajas:
- Mejora el rendimiento con consultas de alta concurrencia que contiene pocos cambios de fila.
- Mejora significativamente la consistencia de los datos.
- El tráfico de red puede ser significativamente más alto si hay consultas que modifican una gran cantidad de filas.
- Es más difícil auditar los cambios en la base de datos.
- Puede ser más lenta que la replicación basada en sentencias en algunos casos.
Vanoverbeke, D. (2017). Overview of Different MySQL Replication Solutions. Marzo 1, 2017, de Percona Database. Sitio web: https://www.percona.com/blog/2017/02/07/overview-of-different-mysql-replication-solutions/
Comentarios