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

Blokada odczytu MySQL WYBIERZ DO AKTUALIZACJI

Szukasz nazwanych blokad (ostrożne, niebezpieczne rzeczy, nie próbuj eksperymentować z blokadami na serwerach produkcyjnych :D).

Spójrz na:

A1 :Wybierz unikalny ciąg do zablokowania i użyj GET_LOCK na nim (powiedz, GET_LOCK('conversation_' || [id]); jeśli zwraca 1 zamek jest twój. Rób, co chcesz, a później zadzwoń do RELEASE_LOCK (uwzględniając wszystkie możliwe scenariusze, w tym błędy).

A2 :Drugi parametr GET_LOCK to limit czasu w sekundach . Jeśli operacja przekroczy limit czasu GET_LOCK zwróci 0 .

Z oficjalnej dokumentacji

Pogrubienia są moje:

  1. Oznacza, że ​​możesz trzymać tylko jedną blokadę na połączenie (nie jest to problem dla twojego przypadku użytkownika)
  2. Oznacza, że ​​blokady zostaną zwolnione po zamknięciu połączenie
  3. Oznacza, że ​​dwa różne połączenia (nawet z tej samej puli) mogą nie uzyskać tego samego wyglądu jednocześnie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamiczny kursor w procedurze składowanej

  2. Tworzenie listy z możliwością filtrowania za pomocą zapytań Laravel i Eloquent

  3. Zapytanie, aby uzyskać wszystkie wiersze z poprzedniego miesiąca

  4. Przechowuj obraz w blobu bazy danych; pobierz z db do Picturebox

  5. MySQL:Wbudowany JSON a tabela