sql >> Databáze >  >> RDS >> Mysql

operace delete uzamkne celou tabulku v innodb

Nejprve za předpokladu, že id je primární klíč nebo alespoň indexovaný sloupec.

Vložení by nemělo uzamknout tabulku, takže je pravděpodobné, že se ve stejnou dobu smazání záznamů provádí jakýkoli jiný dotaz na aktualizaci/smazání.

Pokud tomu tak není, může to být způsobeno „uzamykáním mezer“, jak je zmíněno @a_horse_with_no_name.

Takže ve které době se tento problém znovu objeví, musíte na konci uložit všechny procesy „ukázat úplný seznam procesů“ a také zkontrolovat „zobrazit stav motoru innodb“, kde vám ukáže procesní ID související s uváznutím, to vám pomůže získat přesné problém.

Dále Tomuto uzamčení se můžete vyhnout a odstranit všechny řádky jeden po druhém na základě primárního klíče.




  1. Následné:jak modelovat slevu na položky v databázi?

  2. PHP/MySQL – ukládání dat pole jako JSON, špatný postup?

  3. Vkládání položek do rozbalovací nabídky bootstrap z tabulky SQL

  4. Operace není platná pro stav chyby transakce a rozsah transakce