Desarrollador de Bases de Datos y SQL: pregunta de entrevista

¿Cómo afectan los bloqueos y transacciones a la concurrencia?

Las transacciones mantienen locks o versiones para preservar aislamiento; mayor alcance y duración aumentan bloqueo y deadlocks. Hazlas cortas, accede en orden consistente, indexa predicados y elige aislamiento por invariante.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Una transacción toma locks, o en motores multiversión crea versiones, para mantener consistentes sus lecturas y escrituras hasta el commit. Los locks de fila bloquean a otros escritores sobre las mismas filas; algunas operaciones escalan a locks de tabla; los locks de índice y de hueco aparecen bajo aislamiento más estricto. Cuanto más vive una transacción y más filas toca, más esperan los demás, y dos transacciones que adquieren los mismos recursos en distinto orden pueden bloquearse mutuamente, lo que el motor resuelve abortando una. La concurrencia viene de transacciones cortas que leen primero y escriben al final, orden de acceso consistente entre rutas de código, índices que permiten a las escrituras bloquear pocas filas y un nivel de aislamiento elegido por operación.

Ejemplo

Un job nocturno que actualizaba un millón de filas en una transacción bloqueó todas las escrituras de pedidos diez minutos; dividirlo en lotes de 5.000 con commit en cada uno eliminó el bloqueo. Un deadlock recurrente entre la ruta de checkout, que bloqueaba pedidos y luego inventario, y el job de reposición, que bloqueaba inventario y luego pedidos, desapareció cuando ambos adquirieron primero inventario.

Errores frecuentes

  • Mantener una transacción abierta esperando entrada del usuario o una API externa.
  • Actualizar filas con un predicado sin índice y bloquear mucho más de lo previsto.
  • Reintentar a ciegas una transacción bloqueada sin arreglar el orden de adquisición.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador de Bases de Datos y SQL