Bloqueos y concurrencia en MySQL

Entiende locks y evita problemas de concurrencia en cargas simultáneas.

Los bugs de concurrencia son caros y difíciles de reproducir.

Con locks y orden de operaciones correcto puedes evitar deadlocks frecuentes.

  • Bloquea filas necesarias en transacción.
  • FOR UPDATE protege lectura-modificación-escritura en escenarios de competencia.
  • Los bugs de concurrencia son caros y difíciles de reproducir.
  • Con locks y orden de operaciones correcto puedes evitar deadlocks frecuentes.

SELECT ... FOR UPDATE

Bloquea filas necesarias en transacción.

FOR UPDATE protege lectura-modificación-escritura en escenarios de competencia.

Bases de datos
13

Bloqueos y concurrencia en MySQL

Entiende locks y evita problemas de concurrencia en cargas simultáneas.

Código del tema: Modelo relacional + consultas SQL

📘 Teoría

SELECT ... FOR UPDATE

Bloquea filas necesarias en transacción.

FOR UPDATE protege lectura-modificación-escritura en escenarios de competencia.

Lock pesimista
START TRANSACTION;
SELECT stock FROM productos WHERE id = 10 FOR UPDATE;
UPDATE productos SET stock = stock - 1 WHERE id = 10;
COMMIT;

🧪 Aprende probando

Ejemplo Ejemplo guiado: FOR UPDATE
Ejemplo Ejemplo guiado: lock wait timeout

🏁 Retos

Reto Reto: añade FOR UPDATE

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Bases de datos.

Test de Bases de datos

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .