![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po co stosuje się blokowanie tabel przy edycji/aktualizacji? Czy sama transakcja nie wystarczy?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 42 Dołączył: 22.07.2007 Skąd: /dev/random Ostrzeżenie: (0%) ![]() ![]() |
Różne silniki mają różne funkcje np. tabela na silniku MyISAM nie obsługuje transakcji ale posiada wyszukiwanie pełnotekstowe, czego w InnoDB nie znajdziesz a możesz użyć transakcji. Manual się przydaje.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie o to mi chodzi. Jeśli będę wykonywał n-operacji sql w transakcji na tabeli X, których czas wykonywania będzie wynosił 30sekund to jeśli inny użytkownik w tym czasie poprosi o dane z tabeli X to zobaczy sprzed transakcji (transakcja jeszcze się nie zakończyła). A co jeśli w tym czasie dokona aktualizacji tabeli? I jak to będzie wyglądało jeśli przed odpaleniem transakcji zablokuję dostęp do odczytu i zapisu tabeli X - co wtedy użytkownik zobaczy? Błąd?
Jeśli zależy nam aby użytkownik nie mógł aktualizować tabeli jeśli trwa transakcja to jak to zrobić? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 42 Dołączył: 22.07.2007 Skąd: /dev/random Ostrzeżenie: (0%) ![]() ![]() |
Cytat I jak to będzie wyglądało jeśli przed odpaleniem transakcji zablokuję dostęp do odczytu i zapisu tabeli X - co wtedy użytkownik zobaczy? Jeżeli klient A wprowadzi blokade to klient B chcąc aktualizowć tą samą tabele w czasie blokady będzie musiał czekać w kolejce do jej zwolnienia. Cytat Jeśli zależy nam aby użytkownik nie mógł aktualizować tabeli jeśli trwa transakcja to jak to zrobić? Blokowanie na poziomie tabeli odbywa się przez:
InnoDB udostępnia dodatkowe rodzaje blokad na poziomie rekordów o których możesz przeczytać tutaj. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Kiedy stosować blokowanie?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
np. podczas tworzenia kopii zapasowej bazy danych
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 42 Dołączył: 22.07.2007 Skąd: /dev/random Ostrzeżenie: (0%) ![]() ![]() |
Google na takie pytania też potrafi odpowiedzieć, sam zobacz.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 04:26 |