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

Hibernacja optymistycznego blokowania..jak to działa?

Aby być precyzyjnym, nie masz na myśli optymistycznego blokowania, ale optymistyczną współbieżność (bez blokady). Używanie znacznika czasu dla wersji służy tylko do obsługi starszej bazy danych, ponieważ nowoczesna baza danych może (przynajmniej teoretycznie) działać szybciej niż dokładność jej przechowywania znacznik czasu.

Użycie własności integer version jest bardzo proste:

  • Przy wstawce:ustaw wersję na 1
  • Podczas aktualizacji i usunięcia:zwiększ wersję o 1 i dodaj „gdzie [email protected] " do każdej instrukcji sql. Zwróć liczbę zmienionych rekordów. Zgłoś StaleObjectStateException, gdy liczba zmienionych rekordów jest inna niż oczekiwana.

Osobiście nie stworzyłbym dwóch oddzielnych aplikacji zapisujących te same dane w sytuacji nie starszej, ponieważ oznacza to, że logika biznesowa musi zostać zduplikowana, a zmiany muszą zostać zastosowane do dwóch aplikacji, również wtedy, gdy zmiana dotyczy tylko jednej z aplikacje.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyspiesz aktualizację MySQL/Insert Statement

  2. Jak mogę rozwiązać niezgodne z sql_mode=only_full_group_by w laravel eloquent?

  3. Wstrzyknięcie SQL z filtrowaniem php

  4. Przygotowane instrukcje PDO/MYSQL bez znaków ucieczki?

  5. BŁĄD:Błąd 1005:Nie można utworzyć tabeli „cat10e.recording” (errno:150)