Grazie di nuovo !
Ciao,
Stefano
Da: greghy#90 <greghy90@...>
A: php-italia@yahoogroups.com
Inviato: Giovedì 15 maggio 2008, 8:49:30
Oggetto: Re: [php-italia] Due processi php paralleli su un database MySQL possono causare conflitti?
Se è sono righe diverse non accade nulla, se invece lavora sulla stessa riga accade questo:
mettiamo che ci sia una tabella con i conti bancari degli utenti, un utente ha sul conto 50EUR; nello stesso istante in cui il sistema fa dei calcoli periodici per detrarre il 10%, l'utente preleva 30EUR. Tutti e due i processi leggono dalla tabella che sul conto ci sono 50EUR; il processo del prelievo è il più veloce perché deve solo fare una sottrazione: sul conto risultano quindi esserci 20EUR, il processo di routine però aveva visto che sul conto c'erano 50EUR e quindi calcolato ciò che doveva detrarre (10% = 5EUR) in base ai 50EUR presenti sul conto, e quindi essendo più lento andrà a scrivere nella tabella che sul conto ci saranno 45EUR, quando in realtà ce ne dovrebbero essere 18EUR (20EUR - 10%).
Come
ovviare a tutto ciò?
usando i comandi di MySQL LOCK TABLES e UNLOCK TABELS (http://dev.mysql. com/doc/refman/ 5.0/en/lock- tables.html).
Ciao,
greg
Scopri il Blog di Yahoo! Mail: trucchi, novità, consigli... e la tua opinione!