DBAtlas · Atlas de operações de banco de dados

1213: Deadlock found when trying to get lock; try restarting transaction

MySQL

O que significa?

O InnoDB detectou um deadlock em que duas ou mais transações aguardam os locks umas das outras e quebrou o ciclo fazendo rollback de uma das transações.

Por que acontece?

Locks de linha adquiridos em ordens diferentes, atualizações cruzadas das mesmas linhas, faixas amplas de linhas sendo bloqueadas (gap locks) por falta de índices, ou conflitos durante verificações de foreign key.

Como resolver

Veja os detalhes do último deadlock: SHOW ENGINE INNODB STATUS (seção LATEST DETECTED DEADLOCK). Acesse linhas/tabelas na mesma ordem em todas as transações e mantenha as transações curtas. Reduza a faixa bloqueada adicionando índices adequados. Capture a transação que sofreu rollback na aplicação e tente novamente (lógica de retry).

Abrir no DBAtlas →

Mais entradas deste banco