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

MySQL:współbieżne aktualizacje (poprzez wątki) na prostej tabeli

Blokowanie jest niejawne, tak, ale nie jest wykonywane przez executeUpdate() . Silnik pamięci w MySQL obsługuje blokowanie i odblokowywanie.

Za każdym razem, gdy piszesz do tabeli MyISAM, twoje zapytanie czeka, aż blokada zapisu w tabeli będzie dostępna, blokada zapisu zostaje nabyta, zapis jest zakończony, a blokada zapisu zostaje zwolniona. W MyISAM nie ma rzeczywistej współbieżności zapisu, ponieważ w rzeczywistości każdy pracownik czeka w kolejce na blokadę zapisu. Nie pojawia się błąd, ponieważ żądania zapisu są serializowane.

Sytuacja z InnoDB jest podobna, ale bardzo inna, ponieważ InnoDB blokuje tylko część tabeli, zwykle na poziomie wiersza, gdzie InnoDB może zablokować zakres w indeksie, blokując w ten sposób wiersze w tym zakresie w indeksie (a poprzedzająca je luka). To blokowanie jest bardziej szczegółowe niż blokowanie tabeli, co umożliwia lepsze zachowanie współbieżności, ale nie ma jednoczesnej operacji na tym samym wierszu — każdy pracownik czeka na blokadę lub blokady, których potrzebuje.

W obu przypadkach blokady są brane domyślnie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks miesiąca JavaScript Date Obiekt zaczyna się od 0

  2. Jaka jest różnica między MySQL i MySQL2 biorąc pod uwagę NodeJS?

  3. MySQL LOAD_FILE() ładuje wartości null

  4. Zmiana katalogu danych w pliku my.ini nie jest przestrzegana w WAMP

  5. Uzyskaj wyniki z MySQL za pomocą PDO