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%)
-----


Z dwoma klientami konsolowymi nie sprawdzałem, ale sprawdzałem blokując w konsoli poleceniem:
LOCK TABLES UserZdjecia AS U WRITE, UserKonto AS UK WRITE;
a tabele wywoływałem SELECT z poziomu przeglądarki www oraz programu MySQL QueryBrowset czyli z innych wątków i blokada działa tylko dla update, ale nie na select pomimo jej założenie w/w instrukcją SQL beeeee (IMG:style_emoticons/default/sad.gif)

/// Po dłuższej walce z tym problemem

Już wiem dlaczego tak dziwnie się działo, bo jednak ostatnie polecenia select było cachowane co zauważyłem wywolujac inną stronę z select na której już nie działało. Jeśli nie ma pobierać rekordów z'cachowanych przy włączonej blokadzie należy do klauzuli SELECT dodać SQL_NO_CACHE (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował Mion 29.12.2009, 18:41:37
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 - 13:22