sql >> Database teknologi >  >> RDS >> Mysql

Løsning af MySQL-fejl Deadlock fundet, når du forsøger at få lås; prøv at genstarte transaktionen

Hvis du bruger InnoDB eller en transaktions-RDBMS på rækkeniveau, er det muligt, at enhver skrivetransaktion kan forårsage et dødvande, selv i helt normale situationer. Større tabeller, større skrivninger og lange transaktionsblokke vil ofte øge sandsynligheden for, at deadlocks opstår. I din situation er det sandsynligvis en kombination af disse.

Den eneste måde virkelig at håndtere dødvande er at skrive din kode for at forvente dem. Dette er generelt ikke særlig svært, hvis din databasekode er velskrevet. Ofte kan du bare sætte en try/catch omkring forespørgselsudførelseslogikken og se efter en dødvande, når der opstår fejl. Hvis du fanger en, er den normale ting at gøre bare at forsøge at udføre den mislykkede forespørgsel igen.

Jeg anbefaler stærkt, at du læser denne side i MySQL-manualen. Den har en liste over ting, du kan gøre for at hjælpe med at klare dødvande og reducere hyppigheden af ​​dem.



  1. ETL vs ELT:Vi vurderer, du dømmer

  2. Hvordan får man en dato i formatet ÅÅÅÅ-MM-DD fra et TSQL-dato-tidsfelt?

  3. alembic util kommando fejl kan ikke finde identifikator

  4. Sådan opretter du en tabel i MySQL