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

mySQL - Blokowanie tabel a blokowanie wierszy

Jeśli masz indeks na tblAreas.AreaID, to każda transakcja, która zawiera WHERE tblAreas.AreaID in (...) zablokuje indeks dla tych wpisów. Nie ma znaczenia, czy same wiersze istnieją, czy nie. Ta blokada uniemożliwi innej transakcji wstawienie wpisów dla tych identyfikatorów. Więc myślę, że nie musisz robić żadnej z twoich sugestii. Wystarczy zapytać, czy wszystkie obszary są dostępne dla Twojego terytorium, aby uzyskać blokadę, której potrzebujesz, aby atomowo wprowadzić swoje terytorium.

Może to stanowić pewien problem, ponieważ identyfikatory obszarów nie są unikalne w całej grze, więc może wystąpić fałszywa serializacja między obszarami o tym samym identyfikatorze na różnych mapach. Pomocne może być dodanie mapID do tabeli tblAreas, dzięki czemu można zamiast tego utworzyć indeks (mapID, areaID) do wyszukiwania, co pozwoli uniknąć fałszywych kolizji w indeksie. (To zdenormalizuje twój schemat, czego możesz nie chcieć robić z innych powodów.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd podczas wykonywania kopii zapasowej za pomocą mysqldump w wierszu poleceń mysql

  2. Używanie pola wyboru HTML, aby umieścić 1 lub 0 w tabeli MySQL

  3. MySQL:duży VARCHAR kontra TEXT?

  4. Jak wstawić wiele rekordów w jednej podróży do bazy danych za pomocą PDO?

  5. php wstawia wiele wierszy do bazy danych MYSQL