Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nieoczekiwane działanie polecenia LOCK TABLES
Mion
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

Ostrzeżenie: (0%)
-----


Witam ponownie,
w konsoli wydaje polecenie:
  1. mysql> LOCK TABLES UserZdjecia AS U WRITE;
Które powinno zablokować tabelę dla innych wątków zarówno odczytu jak i zapisu lub modyfikacji i zaraz potem przeładowuję stron www zawiera zapytanie SQL które wybiera dane
  1. SELECT U.idz, U.id_usera, U.zdjecie_nazwa FROM UserZdjecia U LIMIT 10;
i dane te są wybierane.

Wiec jakie jest w sumie działanie tej komendy LOCK TABLES skoro można dane odczytać w innym wątku?(IMG:style_emoticons/default/questionmark.gif)

Tabela jest typu InnoDB....

Ten post edytował Mion 29.12.2009, 11:49:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mion
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

Ostrzeżenie: (0%)
-----


WRITE blokuje tabele przed "Przy klauzuli WRITE jedynie aktualny wątek będzie dopuszczony do jakichkolwiek operacji na tabeli (zarówno odczytu jak i zapisu lub modyfikacji). " W tym wypadku wywołanie ze strony www powinno uruchomić inny wątek niż wątek uruchomiony z konsoli gdzie wydałem komendę...
////
Nawet jak zablokuje wszystkie tabele z konsoli wchodzące w skład zapytania

  1. mysql> LOCK TABLES UserZdjecia AS U WRITE, UserKonto AS UK WRITE;
  2. Query OK, 0 rows affected (0,00 sec)
lub
  1. mysql> LOCK TABLES UserZdjecia AS U READ, UserKonto AS UK READ;
  2. Query OK, 0 rows affected (0,00 sec)

Mogę wygenerować stronę która wykonuje SELECT dla tych tabel. Jedynie zgodnie z oczekiwaniem działa kiedy wywołuje się komenda UPDATE dla zablokowanych tabeli - wtedy strona "czeka" na odblokowanie tabel.

Jest to dosyć nieoczekiwane działanie [właściwie nie działanie] tego polecenia, a co gorsza wydaje mi się, że komendy są właściwe (IMG:style_emoticons/default/sad.gif)

Ten post edytował Mion 29.12.2009, 14:10:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 10:41