Autor | Zpráva | ||
---|---|---|---|
Jirin Profil |
#1 · Zasláno: 18. 11. 2014, 22:12:01
Zdravím,
potřebuji poradit, stane se mi tak dvakrát za den, že mi na stejném místě v aplikaci dojde k deadlocku. Přitom nevím proč.Může mě někdo nasměrovat? V dané transakci jsou tyto dotazy: "START TRANSACTION" SELECT * FROM stats WHERE article_id = 201 AND date = '2014-11-18' LIMIT 1 UPDATE articles SET views = 2964 WHERE id = 201 UPDATE stats SET views = 18 WHERE id = 1952532 "COMMIT" Deadlock nastává na dotazu: UPDATE articles SET views = 2964 WHERE id = 201 . Nějak si nevím rady, někde jsem četl, že problém můžou být cizí klíče. Mám jich na té tabulce několik, jeden jde na stejnou tabulku articles, ostatní jsou na ciz tabulky. |
||
Dusann Profil |
#2 · Zasláno: 19. 11. 2014, 22:32:25
Tak si skús vytvoriť error handler, ktorý ti v prípade deadlocku zopakuje transakciu - takto neprerušíš uživateľovu akciu error odozvou z DB.
|
||
Časová prodleva: 10 let
|
0