¿Qué sucede con las tablas InnoDB y MyISAM si falla la energía durante una transacción?

¿Qué sucede con las tablas InnoDB y MyISAM si falla la energía durante una transacción?

Tenemos dos tablas MySQL, una es InnoDB y la otra es MyISAM. Si ejecuto una serie de inserciones en una sola transacción en ambas tablas y falla la energía en el medio, ¿cuál será el estado?

¿Qué pasará con los datos recién insertados en las tablas InnoDB y MyISAM?

Respuesta1

Innodb es una base de datos transaccional, almacena los cambios de la base de datos en los archivos de registro de transacciones, mediante validación de suma de verificación, confirma o revierte las transacciones en el siguiente reinicio después de un bloqueo o un corte de energía.

MyISAM no tiene un sistema transaccional para revertir las confirmaciones de transacciones fallidas. Por lo tanto, la corrupción de la base de datos se convierte en un problema importante en servidores inestables con potencia inestable.

Si es imprescindible la integridad de los datos y evitar la contención de bloqueos (bloqueos de fila de innodb frente a bloqueos de tabla de myisam), opte por Innodb.

Respuesta2

Mi entendimiento (no estoy seguro) es:

  • InnoDB revertirá la transacción por completo.
  • MyISAM retendrá todos los datos que se hayan insertado hasta el momento del corte de energía.

información relacionada