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

Mysql-Lesesperre AUSWÄHLEN FÜR UPDATE

Sie suchen nach benannten Sperren (Vorsicht, gefährliches Zeug, kommen Sie nicht herum, mit Sperren auf Produktionsservern zu experimentieren :D).

Schauen Sie sich an:

A1 :Wählen Sie eine eindeutige Zeichenfolge zum Sperren und verwenden Sie GET_LOCK darauf (z. B. GET_LOCK('conversation_' || [id]); wenn es 1 zurückgibt das Schloss gehört dir. Machen Sie was Sie wollen und rufen Sie später RELEASE_LOCK auf (unter Berücksichtigung aller möglichen Szenarien, einschließlich Fehler).

A2 :Der zweite Parameter von GET_LOCK ist ein Timeout in Sekunden . Wenn die Operation GET_LOCK abläuft gibt 0 zurück .

Aus der offiziellen Dokumentation

Fettdruck gehört mir:

  1. Bedeutet, dass Sie nur eine Sperre pro Verbindung halten können (kein Problem für Ihren Anwendungsfall)
  2. Bedeutet, dass Sperren aufgehoben werden, sobald Sie schließen die Verbindung
  3. Bedeutet, dass zwei verschiedene Verbindungen (selbst aus demselben Pool) möglicherweise nicht gleichzeitig dasselbe Aussehen erhalten.