sql >> Database >  >> RDS >> Mysql

MySQL-fout omzeilen Deadlock gevonden bij het proberen te vergrendelen; probeer de transactie opnieuw te starten

Als u InnoDB of een transactioneel RDBMS op rijniveau gebruikt, is het mogelijk dat elke schrijftransactie kan een impasse veroorzaken, zelfs in volkomen normale situaties. Grotere tabellen, grotere schrijfacties en lange transactieblokken vergroten vaak de kans op deadlocks. In jouw situatie is het waarschijnlijk een combinatie hiervan.

De enige manier om deadlocks echt aan te pakken, is door uw code te schrijven om ze te verwachten. Dit is over het algemeen niet erg moeilijk als uw databasecode goed is geschreven. Vaak kun je gewoon een try/catch . plaatsen rond de logica voor het uitvoeren van query's en zoek naar een impasse wanneer er fouten optreden. Als je er een betrapt, is het normaal dat je probeert de mislukte query opnieuw uit te voeren.

Ik raad je ten zeerste aan om deze pagina te lezen in de MySQL-handleiding. Het heeft een lijst met dingen die u kunt doen om impasses het hoofd te bieden en de frequentie ervan te verminderen.



  1. Converteer efficiënt rijen naar kolommen in de sql-server

  2. Geneste klassen - CustomRowMapper !! Geen probleem meer!! - Deel 2

  3. Django prefetch_related met limiet

  4. oracle converteer unix tijdperk tot nu toe