Visa ett inlägg
Oläst 2010-11-12, 09:50 #2
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
Tidskrävande kanske tyder på att frågan kan optimeras.
Det är inte frågan som är tidskrävande, det är det arbete jag utför på hämtad data. Tror inte jag kan utföra det utan busyflagga eftersom det är uteslutet att låsa tabellen under den långa tid som arbetet med datan tar.
1. Jag hämtar datan
2. Jag arbetar med datan (involverar externa API etc som är tidskrävande)
3. jag uppdaterar datan i min databas med modifierade värden.

Har googlat lite mer, vad tror ni om nedanstående approach?

BEGIN
SELECT * FROM table WHERE x=y AND busy = 0
UPDATE table SET busy = 1 WHERE x=y
COMMIT

zzzzz beräkning av nya värden zzzzzz

UPDATE table SET oldvalue = newvalue, busy = 0 WHERE x=y


Då låser jag tabellen endast en kort tid, men säkerställer ändå att inte olika skript arbetar parallellt med samma data. Eller?
hoover är inte uppkopplad   Svara med citatSvara med citat