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

Wydajność blokowania na poziomie wiersza InnoDB — ile wierszy?

Nie jest do końca jasne, o co prosisz. Blokowanie zapewnia, że ​​w danym momencie tylko jeden użytkownik próbuje zmodyfikować dany wiersz. Blokowanie na poziomie wiersza oznacza, że ​​blokowany jest tylko jeden wiersz, który modyfikują. Zwykłe alternatywy to albo zablokowanie całej tabeli na czas modyfikacji, albo zablokowanie jakiegoś podzbioru tabeli. Blokowanie na poziomie wiersza po prostu redukuje ten podzbiór wierszy do najmniejszej liczby, która nadal zapewnia integralność.

Chodzi o to, aby umożliwić jednemu użytkownikowi modyfikowanie jednej rzeczy bez uniemożliwiania innym użytkownikom modyfikowania innych rzeczy. Warto jednak zauważyć, że w niektórych przypadkach może to być coś w rodzaju fałszywie pozytywnego, że tak powiem. Kilka baz danych obsługuje blokowanie na poziomie wiersza, ale sprawia, że ​​blokada na poziomie wiersza jest znacznie droższa niż blokowanie większej części tabeli — na tyle droższa, że ​​może przynieść efekt przeciwny do zamierzonego.

Edycja:Twoja edycja oryginalnego posta pomaga, ale nie za bardzo. Po pierwsze, ogromny wpływ mają rozmiary wierszy i poziomy sprzętu (wstawienie 8-bajtowego wiersza na tuzin dysków twardych SAS z paskiem 15 tys. jest odrobinę szybsze niż wstawienie jednego megabajtowego wiersza na pojedynczy dysk twardy klasy konsumenckiej ).

Po drugie, w dużej mierze chodzi o liczbę jednoczesnych użytkowników, więc wzór wstawiania robi dużą różnicę. 1000 wierszy wstawionych o 3 nad ranem prawdopodobnie w ogóle nie zostanie zauważonych. 1000 rzędów wstawionych równomiernie w ciągu dnia to trochę więcej (ale chyba tylko trochę). 1000 wierszy wstawionych jako partia, gdy 100 innych użytkowników potrzebuje danych natychmiast, może spowodować zwolnienie kogoś (zwłaszcza jeśli jeden z tych 100 jest właścicielem firmy).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WSTAW, jeśli nie istnieje Mysql

  2. Maksymalna liczba jednoczesnych połączeń z MySQL

  3. Znajdź odległość między dwoma punktami za pomocą szerokości i długości geograficznej w mysql

  4. Konfigurowanie .NET MVC3 z MySQL

  5. Połączenie Tomcat/Hibernacja z MySql kończy się niepowodzeniem z awarią łącza komunikacyjnego i odmową uprawnień