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

Dlaczego commit nie powoduje impasu

Podejrzewam, że jest to skrajny przypadek, którego nie warto zwiększać. Zwróć uwagę, że musiałeś zrobić 3 sesje, próbując złapać ten sam rząd – co zdarza się rzadko. I zrobiłeś ROLLBACK -- również rzadki. Tak więc impas, który nastąpił, jest przesadą, ale nie warto go naprawiać. Z tego powodu należy być przygotowanym na radzenie sobie z zakleszczeniami wszędzie.

FYI, gdyby były to 3 węzły klastra Galera, wystąpiły błędy w COMMIT że kod będzie musiał obsłużyć. Podejrzewam, że istnieje jeszcze więcej kombinacji dziwnych rzeczy, jeśli zastosujesz tę transakcję (z wycofaniem lub zatwierdzeniem) wiele razy do wielu węzłów.

A teraz twoje pytanie... Przypuszczalnie do impasu nie doszło, ponieważ jeden z wątków otrzymał blokadę na wyłączność, a drugi otrzymał „czekaj” zamiast „zakleszczenia”.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Relacja między 2 kolumnami

  2. Jak mogę wybrać wiersze w odwrotnej kolejności w MySQL?

  3. Błąd krytyczny:wywołanie niezdefiniowanej metody mysqli::bind_param() in

  4. Automatycznie zabijaj długo działające zapytania (MySql), Apache Tomcat DataSource

  5. Jak zmienić sortowanie na utf8_bin za jednym razem?