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 50€; nello stesso istante in cui il sistema fa dei calcoli periodici per detrarre il 10%, l'utente preleva 30€. Tutti e due i processi leggono dalla tabella che sul conto ci sono 50€; il processo del prelievo è il più veloce perché deve solo fare una sottrazione: sul conto risultano quindi esserci 20€, il processo di routine però aveva visto che sul conto c'erano 50€ e quindi calcolato ciò che doveva detrarre (10% = 5€) in base ai 50€ presenti sul conto, e quindi essendo più lento andrà a scrivere nella tabella che sul conto ci saranno 45€, quando in realtà ce ne dovrebbero essere 18€ (20€ - 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