Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> deadlock, czy uniknę zakleszczenia ?
gamestaza
post 14.10.2011, 13:48:11
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.07.2011

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


Witam, to znowu ja i jak zwykle bardzo proszę o pomoc.

Otóż mam pewien dylemat, obawiam się deadlocka (zakleszczenia) i chce go uniknąć. Zastanawiam się czy uchroni mnie przed tym unia, ponieważ blokuję rekordy SELECT .. FOR UPDATE. Chodzi mi o to czy jak wykonam polecenie typu:

  1.  
  2. (SELECT * FROM `tablica` WHERE ID = 1 FOR UPDATE) UNION (SELECT * FROM `tablica` WHERE ID = 2 FOR UPDATE)
  3.  


a rekord o ID = 2 będzie zablokowany przez innego klienta to czy MySQL to zauważy w ten sposób, że poczeka na zablokowanie rekordu o ID = 1 by nie powstało zakleszczenie.

Proszę o pomoc. Mam nadzieje, że mój problem opisałem dość dobrze i zrozumiale na tyle, że ktoś mi pomoże.

Ten post edytował gamestaza 14.10.2011, 13:50:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
darko
post 14.10.2011, 14:19:05
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


InnoDB ? Jest kilka porad w sieci i raczej nie ma większego sensu uciekać się do takich dziwacznych rozwiązań, których skutki nie do końca i nie zawsze można przewidzieć. Deadlocki można wykrywać na różne sposoby, np.
  1. SHOW ENGINE INNODB STATUS


innodb_table_locks = 1
autocommit = 0
innodb_lock_wait_timeout

http://dev.mysql.com/doc/refman/5.0/en/innodb-deadlocks.html
http://dev.mysql.com/doc/refman/5.0/en/inn...-detection.html
http://dba.stackexchange.com/questions/173...adlock-in-mysql


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
gamestaza
post 14.10.2011, 15:23:02
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.07.2011

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


Dziękuję za pomoc już pokonaliśmy deadlock'i. W uni SELECTy są traktowane jak podzapytania, więc można się zakleszczyć podczas blokowania rekordów.. ale już sobie z tym poradziliśmy odpowiednio sortując podzapytania w odpowiednią kolejność ich wywołań.

Ten post edytował gamestaza 15.10.2011, 15:03:34
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:44