sql >> Databasteknik >  >> RDS >> Mysql

radera operation låser hela tabellen i innodb

Först och främst antar att id är en primärnyckel eller åtminstone en indexerad kolumn.

Insert ska inte låsa tabellen, så chansen är stor att någon annan uppdaterings-/raderingsfråga körs samtidigt som posterna tas bort.

Om det inte är fallet kan det bero på "gap locking" som nämnt @a_häst_med_inget_namn.

Så när du får det här problemet igen måste du lagra alla processer "visa fullständig processlista" i slutet och även kontrollera "visa motorns innodb-status" där det kommer att visa dig processider relaterade till dödläge, detta hjälper dig att få exakt problem.

Ytterligare Du kan undvika denna låsning för att radera alla rader en efter en baserat på primärnyckel.




  1. Är det bättre att skapa ett index innan du fyller en tabell med data, eller efter att data är på plats?

  2. Hur man byter namn på en tabell i SQL

  3. SQL-fråga med MySQL

  4. Gå med 3 tabeller i SQL