MySQL · Lección 10
¿Qué ocurre cuando dos transacciones entran en deadlock y cómo se reducen?
InnoDB detecta el deadlock y revierte una de ellas (la víctima), que la aplicación debe reintentar; se reducen con transacciones cortas y accediendo a las filas siempre en el mismo orden, y SHOW ENGINE INNODB STATUS muestra el último deadlock
Los deadlocks solo ocurren con MyISAM; con InnoDB y bloqueo a nivel de fila son imposibles
La mejor forma de evitarlos es mantener las transacciones abiertas el mayor tiempo posible para que no se interrumpan
Las dos transacciones quedan bloqueadas indefinidamente hasta que un administrador mata una manualmente
MySQL · Lección 10
Completa el código
InnoDB resuelve un deadlock revirtiendo a una
Revisa: revierte a una víctima.
MySQL · Lección 10
¿Por qué una transacción larga abierta aumenta la probabilidad de bloqueos y problemas?
Pista: mantiene bloqueos durante más tiempo y otras transacciones tienen que esperar, además de retener versiones antiguas de filas y hacer crecer el undo log; las transacciones cortas reducen la ventana de conflicto.
✓
¡Lección completada!
Bloqueos, deadlocks y transacciones largas
0
XP ganado
3
Vidas restantes