sql >> Databasteknik >  >> RDS >> Mysql

Varför låser två samtidiga delete + infogar uttalanden fastlåsta på en tom tabell?

"Gapet" är låst i väntan på att någon kan försöka infoga raden jag försöker ta bort.

Eller, för att se det på ett annat sätt... Det skulle vara för långsamt för att perfekt hantera alla udda fall. Så InnoDB väljer att hantera de flesta ärenden effektivt och satsa på det sällsynta udda fallet.

Sammanfattning:Lev med det. Du kommer få dödlägen. Du kommer inte nödvändigtvis att kunna förstå dem. Men din kod måste återställas -- genom att helt enkelt rulla tillbaka och gå tillbaka till BEGIN .




  1. Driftsrapporter för MySQL, MariaDB, PostgreSQL &MongoDB

  2. Använder libmysqlclient i flertrådsapplikation

  3. Konverteringen misslyckades när varchar-värdet 'simple' konverterades till datatyp int

  4. Är det möjligt att ha funktionsbaserat index i MySQL?