Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Transakcje a PHP., Moje wczorajsze odkrycie :)
Black-Berry
post
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Wczoraj odkryłem w MySql mechanizm transakcji. Działa to na prostej zasadzie. Łączy się zapytania w większą grupę którą można zatwierdzić albo cofnąć. Na przykład:

  1. BEGIN;
  2. SELECT * FROM TABLE WHERE id = 10 FOR UPDATE;
  3. UPDATE TABLE SET name = 'moje odkrycie' WHERE id = 10;
  4. COMMIT;

komenda 'FOR UPDATE' sprawia, że tablica 'table' jest zablokowana do odczytu dla innych połaczeń. Obejmując znacznikami BEGIN i COMMIT całą serię selectów i updatów dodających np nowy artykuł mam pewność, że admin i na przykąłd moderator klikając 'zapisz' w tej samej sekundzie nie skrzyżuja danych i nie rozwalą integralności bazy. Jescze trochę o tym czytam ale nie mogę doszukać się odpowiedzi na kilka pytań:

1. Czy dobrze główkuję?
2. Co jeśli moderatorowi braknie prądu? Czy to będzie oznaczało dead lock bo tabela z artykułami nigdy sie nie odblokuje? COMMIT nie nastąpi przecież nigdy.
3. Czy czegoś nie przeoczyłem?
4. Czy to jest tak, ze jesli mam mderatora i administratora i jesli oboje chcą dodać artykuł to czy faktycznie są to odrębne połączenia z bazą?

Ten post edytował Black-Berry 27.08.2008, 09:41:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Tak jestes na dobrej drodze. Z tym ze transakcja obejmuje tylko DML czyli UPDATE INSERT I DELETE. Co do braku pradu to zerwanie polaczenia z baza traktowane jest jako wycofanie transakcji. W przypadku powiedzmy bledu PHP i zamkniecia skryptu podobnie itd. A dead lock to troche inna sytuacja. Transakcje powinno sie zawsze wykorzystywac a szczegolnie tam gdzie wykonujemy bloki operacji ktore musza sie albo na raz wszystkie wykonac albo wycofac.
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: 25.12.2025 - 13:21