Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann man eine Zeile in MySQL sperren, ohne zu blockieren?

Sie verwenden den LOCK IN SHARE MODE wodurch die Zeile von UPDATE gesperrt wird oder DELETE Operationen, erlaubt aber das Lesen der Zeile. Siehe diese Dokumentation Für mehr Information. Ein kurzer Auszug aus der Dokumentation ist unten.

Ihre Abfrage gibt dieselbe Zeile an alle Prozesse/Worker zurück und sie warten einfach darauf, dass die vorherige Sperre freigegeben wird, bevor sie ihre eigene Sperre auf die Zeile setzen. Um die Art von Sperre zu erreichen, die Sie benötigen, ersetzen Sie Ihren SELECT ... LOCK IN SHARE MODE mit SELECT ... FOR UPDATE .