Parallele Datenbank Operationen

Microhome

Erfahrenes Mitglied
Hallo zusammen,

ich habe gerade über einen Fall nachgedacht, den ich einfach über folgendes Beispiel beschreiben möchte:

Nehmen wir an ich speichere die Anzahl der Zugriffe auf eine stark frequentierte Seite, indem ich bei jedem Zugriff ein Counter-Feld in meiner Datenbanktabelle um eins erhöhe.

Das heißt ich müsste bei jedem Zugriff ein "UPDATE tbl SET counter = counter+1" machen.

Was passiert nun, wenn zwei Besucher exakt zur selben Zeit auf die Seite zugreifen. Würde dann ein Update "verschluckt" werden?



Ich bin auf eure Antwort gespannt und wünsche euch ein entspanntes Restwochenende!
 
Unter Umständen kann das durchaus bei diesem UPDATE vorkommen, auch wenn es nicht sehr wahrscheinlich ist. Denn das der Wert nicht gelesen werden muss, ist ein Trugschluss. Auch wenn es für den Client nicht so aussieht und logisch denkend nicht notwendig ist, liegt bei Nicht-Verwendung eines Locks eine sog. Race-Condition vor.
 
Zurück