Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Obejście błędu MySQL Wykryto zakleszczenie podczas próby uzyskania blokady; spróbuj zrestartować transakcję

Jeśli używasz InnoDB lub dowolnego transakcyjnego RDBMS na poziomie wiersza, możliwe jest, że dowolny transakcja zapisu może spowodować zakleszczenie, nawet w całkowicie normalnych sytuacjach. Większe tabele, większe zapisy i długie bloki transakcji często zwiększają prawdopodobieństwo wystąpienia zakleszczeń. W Twojej sytuacji jest to prawdopodobnie połączenie tych dwóch elementów.

Jedynym sposobem, aby naprawdę poradzić sobie z zakleszczeniami, jest napisanie kodu tak, aby się ich spodziewał. Generalnie nie jest to trudne, jeśli kod bazy danych jest dobrze napisany. Często wystarczy umieścić try/catch wokół logiki wykonywania zapytania i poszukaj zakleszczenia, gdy wystąpią błędy. Jeśli je złapiesz, normalną rzeczą do zrobienia jest po prostu próba ponownego wykonania nieudanego zapytania.

Gorąco polecam przeczytanie tej strony w instrukcji MySQL. Zawiera listę rzeczy, które można zrobić, aby poradzić sobie z impasami i zmniejszyć ich częstotliwość.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# z parametrami INSERT MySQL

  2. Jak stworzyć instalację MySQL do testów lokalnych

  3. Przykłady MySQL SOUNDEX()

  4. SQL:Tworzenie tabeli relacji z 2 różnymi auto_increment

  5. Jak wykonać kopię zapasową baz danych MySQL za pomocą AutoMySQLBackup