Jak dowiedzieć się, kto zamyka stół w MySQL

Jak dowiedzieć się, kto zamyka stół w MySQL
Zamek MySQL odnosi się do flagi blokady podłączonej do tabeli. Główne zastosowanie blokad MySQL znajduje się w sesjach użytkowników, aby zapobiec dostępowi do tabeli innych sesji użytkowników podczas aktywnej sesji. Konkretna sesja MySQL może uzyskać dostęp tylko do jej zamków, a nie zamków powiązanych z innymi klientami.

Po zablokowaniu tabeli w określonej sesji inne sesje nie mogą odczytać ani zapisać do tabeli, chyba że blokada z sesji zostanie wydana. Dlatego wszystkie inne sesje są w trybie oczekiwania, aż zamek się zwolni.

Ten krótki przewodnik pokaże, jak wyświetlać dostępne zamki za pomocą polecenia listy procesów.

Jak zablokować stół

Aby uzyskać stan blokady w określonej tabeli, możesz użyć instrukcji blokady. Ogólna składnia dla tabel blokujących to:

MySQL> Tabele blokady tb_name [lock_type]

W typu blokady możesz określić odczyt lub odczyt blokadę. Poniższy przykład ustawia blokadę zapisu w tabeli aktora.

Sakila Sakila.Aktor czytany;

Po uzyskaniu blasku wszystkie pozostałe sesje nie zaktualizują żadnych danych przechowywanych w tabeli.

Na przykład następujące stwierdzenie nie powiedzie się, chyba że tabela zostanie odblokowana.

Włóż do Sakili.aktor (First_name, Last_name, Last_update) wartości („hello”, „świat”, current_date ());

MySQL da ci błąd odczytu jako:

Błąd 1099 (HY000): Tabela „aktor” została zablokowana za pomocą blokady odczytu i nie można go zaktualizować

Jak odblokować stół

Aby odblokować tabelę, użyj zapytania do tabel odblokowania jako:

Mysql> Odblokuj tabele;

Pokaż zablokowane tabele

Domyślnie nie ma ostatecznego sposobu, w jaki możesz zapytać o zablokowany stół jak: (Pokaż zablokowane tabele;).

Możemy jednak użyć polecenia Processlist, aby pokazać zablokowane tabele i użytkowników.

Użyj polecenia:

Pokaż listę procesów;

Zrzuci to zarówno informacje, jak i zapytania czekające na zablokowanie.

Powyższy przykład pokazuje, że użytkownik root blokuje tabelę w tabeli aktorów.

Wniosek

Ten krótki samouczek pokazał, jak zablokować i odblokować tabele i wyświetlić użytkowników, którzy mają tabelę zablokowaną w bazie danych.