Am Donnerstag, 13. April 2006 17:15 schrieb Marcus Franke:
Nimm innodb als storage engine für deine Tabelle.
Das kann locking auf row Basis. myISAM auf Tabellen..
Jain. Ich benutze InnoDB-Tabellen und hab das Problem schon etwas
ausführlicher als Antwort auf "Bernhard Janetzki"'s Mail beschrieben. InnoDB
mag zwar das "SELECT ... FOR UPDATE" 'beherrschen', allerdings hat dieses
Vorgehen die komplette Tabelle genauso gesperrt, als würde ich sie gleich
ganz sperren. Kurz:
"SELECT * FROM test WHERE id=5 FOR UPDATE" hat ein
"SELECT * FROM test WHERE id=3 FOR UPDATE" eines anderen Benutzers so lange
geblockt, bis es durch commit abgeschlossen wurde. Tolles Row-Locking ;-)
Martin